Win 2008 配置问题
1. 访问网站 500 错误
1.1 asp.net 4.0 支持
默认安装IIS7之后,是支持asp.net 2.0的。但是如果你先按照了framework 4.0,在安装的iis7asp.net 4.0是会报错的。
可在CMD下输入:
|
|
1.2 权限问题
解决方法:在组或用户名下添加Everyone用户,增加修改权限。
如果文件在桌面的话,更需要设置Everyone的读写权限。
默认安装IIS7之后,是支持asp.net 2.0的。但是如果你先按照了framework 4.0,在安装的iis7asp.net 4.0是会报错的。
可在CMD下输入:
|
|
解决方法:在组或用户名下添加Everyone用户,增加修改权限。
如果文件在桌面的话,更需要设置Everyone的读写权限。
|
|
安装Ubuntu和Win双系统后,widows认为BIOS时间是本地时间,Ubuntu认为BIOS时间是UTC时间,这样从Ubuntu重启到ubuntu会发现时间相差8小时,Ubuntu会经常与NTP服务器时间进行同步,但Windows不会。
有两种方法可以解决问题,一是修改Ubuntu时间为本地时间,二是修改Windows时间为UTC时间。
我采取的是第一种方案:
以前的方法是
|
|
在Ubuntu 16.04使用systemd启动之后,时间也改成了由timedatectl来管理
更改方法为
|
|
重启即可
|
|
|
|
安装后 F11 全屏终端,执行 cmatrix -b
更多选项执行 cmatrix -h
|
|
安装后执行命令 sl 。会有小火车穿过
迭代器为类序列对象提供了一个类序列的接口。python的迭代无缝地支持序列对象,而且它还允许程序员迭代非序列类型,包括用户定义的对象。迭代器用起来很灵巧,你可以迭代不是序列但表现出序列行为的对象,例如字典的键、一个文件的行,等等。迭代器的作用如下:
|
|
在try程序段中,我们放入容易犯错的部分。我们可以跟上except,来说明如果在try部分的语句发生StopIteration时,程序该做的事情。如果没有发生异常,则except部分被跳过。
随后,程序将继续运行,而不是彻底中断。
|
|
如果无法将异常交给合适的对象,异常将继续向上层抛出,直到被捕捉或者造成主程序报错。比如下面的程序
|
|
子程序的try…except…结构无法处理相应的除以0的错误,所以错误被抛给上层的主程序。
如果try中没有异常,那么except部分将跳过,执行else中的语句。
finally是无论是否有异常,最后都要做的一些事情。
流程如下,
try->异常->except->finally
try->无异常->else->finally
我们也可以自己写一个抛出异常的例子:
|
|
StopIteration是一个类。抛出异常时,会自动有一个中间环节,就是生成StopIteration的一个对象。Python实际上抛出的,是这个对象。当然,也可以自行生成对象:
|
|
|
|
lambda生成一个函数对象。该函数参数为x,y,返回值为x+y。函数对象赋给func。func的调用与正常函数无异。
亦可写作如下形式:
|
|
函数可以作为一个对象,进行参数传递。如:
|
|
map()是Python的内置函数。它的第一个参数是一个函数对象。
map()的功能是将函数对象依次作用于表的每一个元素,每次作用的结果储存于返回的表re中。
|
|
在Python 3.X中,map()的返回值是一个循环对象。可以利用list()函数,将该循环对象转换成表。
如果函数对象返回的是True,则该次的元素被储存于返回的表中。filter通过读入的函数来筛选数据。
|
|
同样,在Python 3.X中,filter返回的不是表,而是循环对象。
reduce可以累进地将函数作用于各个参数,前提是就是这个函数自身能接收两个参数。
|
|
相当于(((1+2)+5)+7)+9 = 24
生成器(generator)的主要目的是构成一个用户自定义的循环对象。
生成器的编写方法和函数定义类似,只是在return的地方改为yield。生成器中可以有多个yield。当生成器遇到一个yield时,会暂停运行生成器,返回yield后面的值。当再次调用生成器的时候,会从刚才暂停的地方继续运行,直到下一个yield。生成器自身又构成一个循环器,每次循环使用一个yield返回的值。
例:
|
|
或:
|
|
循环对象是这样一个对象,它包含有一个next()方法(next()方法,在python 3x中), 这个方法的目的是进行到下一个结果,而在结束一系列结果之后,举出StopIteration错误。
当一个循环结构(比如for)调用循环对象时,它就会每次循环的时候调用next()方法,直到StopIteration出现,for循环接收到,就知道循环已经结束,停止调用next()。
假设我们有一个test.txt的文件:
|
|
我们运行一下python命令行:
|
|
不断输入f.next(),直到最后出现StopIteration
open()返回的实际上是一个循环对象,包含有next()方法。而该next()方法每次返回的就是新的一行的内容,到达文件结尾时举出StopIteration。这样,我们相当于手工进行了循环。
自动进行的话,就是:
|
|
在这里,for结构自动调用next()方法,将该方法的返回值赋予给line。循环知道出现StopIteration的时候结束。
相对于序列,用循环对象的好处在于:不用在循环还没有开始的时候,就生成好要使用的元素。所使用的元素可以在循环过程中逐次生成。这样,节省了空间,提高了效率,编程更灵活。
从技术上来说,循环对象和for循环调用之间还有一个中间层,就是要将循环对象转换成迭代器(iterator)。这一转换是通过使用 iter() 函数实现的。但从逻辑层面上,常常可以忽略这一层,所以循环对象和迭代器常常相互指代对方。
表推导(list comprehension)是快速生成表的方法。
如要生成表L:
|
|
使用表推导的方式:
|
|
这与生成器表达式类似,只不过用的是中括号。表推导的机制实际上是利用循环对象。