一、请教Python 这个类for循环怎么理解?
在python语言中,for in 循环本身会自动调用对象的__next__()函数,直到遇到StopIteration这个异常退出循环,每次执行一次__next__()函数,并且将返回值赋给for后面的变量。
程序是这么运行的
for n in Fib():#Fib()是一个类,调用类名相当于定义一个对象
#也可以写成
#f=Fib()
#for n in f:
由于Fib()实现了,__next__()函数,自然要调用这个__next__()函数,结果是
self.a, self.b = self.b, self.a + self.b # 第一次,这句话执行后self.a=1,self.b=1
if self.a > 100000: #第一次不满足条件,因为self.a=1
raise StopIteration();#第一次不执行
return self.a # 返回1
由于第一次没有raise StopIteration没执行,所以继续下个循环。
self.a, self.b = self.b, self.a + self.b # 第二次,这句话执行后self.a=1,self.b=2
if self.a > 100000: #第二次不满足条件,因为self.a=1
raise StopIteration();#第二次不执行
return self.a # 返回1,输出1
由于第三次没有raise StopIteration没执行,所以继续下个循环。
self.a, self.b = self.b, self.a + self.b # 第三次self.a=2,self.b=3
if self.a > 100000: #第三次不满足条件,因为self.a=2
raise StopIteration();#第三次不执行
return self.a # 返回2,输出2
由于第四次没有raise StopIteration没执行,所以继续下个循环。
self.a, self.b = self.b, self.a + self.b # 第四次self.a=3,self.b=5
if self.a > 100000: #第四次不满足条件,因为self.a=3
raise StopIteration();#第四次不执行
return self.a # 返回3,输出3
...........一直循环,直到self.a大于100000
其实这个函数是返回斐波那契数列的一个类。
不明白可追问。
二、简单的流行英文歌曲
这样子啊,你可以去下几首经典的英文歌曲,然后查歌词,打印出来,不难的。
给你推荐首:you raise me up,歌词很简单,但很深邃。
Have fun.
三、使用python测测你的系统最多能创建多少个线程
输入模块可以使用其功能的其他程序。这就是为什么我们使用python标准库的方法
输入:。
#的/ usr / bin中/ env的蟒蛇
#文件名:! using_sys.py
进口sys
打印“命令行参数是:”
因为我在sys.argv中:
我打印网上打印“\ \ n此pythonpath是',sys.path中,'\ n'
输出:
$蟒蛇using_sys.py我们
参数的命令行参数:
using_sys
的.py我们
是
参数
登录到到网pythonpath为['/家庭/ swaroop /字节/码','/usr/lib/python23.zip“, br>'/usr/lib/python2.3','/ usr / lib目录/ python2.3 /开发平台,将linux2“,
”/usr/lib/python2.3/lib-tk','的/ usr /的lib / python2.3 / lib目录-dynload“,
'的/ usr /lib/python2.3/site-packages','/usr/lib/python2.3/site-packages/gtk-2.0']
首先,我们使用import语句输入sys模块。基本上,这句话语句告诉python中,我们要使用这个模块。 sys模块包含了与python解释器及其环境相关的功能。
当执行python导入sys语句,它被列在目录中找到的sys.path变量sys.py模块。如果您发现该文件,该模块中的报表的主块将被运行,然后这个你要使用的模块。注意,在初始化过程只是我们第一次进行的输入模块。此外,“sys”是“系统”的缩写。通过使用点
sys模块的argv变量表示--sys.argv--这种方法的一个优点是名称不与你的程序中使用任何argv变量冲突。此外,还清楚地表明,该名称是sys模块的一部分。
sys.argv中的变量是一个字符串(列表中会详细在后面的章节介绍)的列表。特别是,sys.argv中包含的命令行参数,即利用传递给你的程序的命令行参数的清单。
如果使用ide来编写和执行这些程序,请认准的命令行参数菜单的方法指定的程序。
在这里,当我们执行python using_sys.py我们有观点,我们使用python命令来运行using_sys.py模块,然后作为参数传递给程序的内容。 python的,我们把它存储在sys.argv变量。
记住,第一个参数始终是剧本sys.argv列表,它的名称。所以,在这里,“using_sys.py”是sys.argv中[0],'我们'是sys.argv中[1],'是'是sys.argv中[2]和“论据”是sys.argv中[3]。注意,python的从0开始计数,而不是从头开始。
sys.path中包含的目录名输入模块的列表。我们可以观察到sys.path的第一个字符串是空的 - 这部分在当前目录下的空字符串表示形式是sys.path中,这pythonpath环境变量是相同的。这意味着,你可以直接在当前目录下输入模块。否则,你必须把你的模块在sys.path所列的目录之一。
|