for..in语句是另一个循环语句,它迭代一个对象的序列,例如经历序列中的第一项。在后面的章节,我们将会看到更多关于序列的细节。现在,你需要知道的是一个序列只是一个有序的项目的集合。
目前创新互联建站已为上千的企业提供了网站建设、域名、网页空间、网站托管、企业网站设计、博罗网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
例如 (保存为 for.py):
for i in range(1, 5):
print(i)
else:
print('for循环结束')
输出:
1
2
3
4
for循环结束
它是如何工作的:
打印一个数字序列。我们使用内置的range函数生成这个数字序列。
我们在这里所做的是提供两个数字,range返回一个从第一个数字到第二个数字的一个数字序列。例如,range(1,5)给出序列[1, 2, 3, 4]。默认情况下,range 步距取为1。如果我们提供第三个数字,range那么它变成了步距。例如range(1,5,2)得到[1,3]。请记住,范围扩展到第二号码,即它不包括第二个数字。
注意,range()生成一个数字序列,当for循环请求下一个项目时,它一次只生成一个数字。如果你想立刻看到完整的数字序列,使用list(range())。list(列表)将在[数据结构章]中解释。
for循环然后遍历这个范围,for i in range(1,5)相当于 for i in [1, 2, 3, 4],这就像把序列中的每一个数(或对象)分配给i,一次一个,然后为每个i值执行该语句块。在本例中,在语句块中我们只是打印它的值。
记住,else部分是可选的。当包括它时,除非遇到[break][#中断)语句,当for循环结束时,它执行一次。
记住,for..in循环可以作用于任何序列。在这里,我们对一个由内建的range函数生成的一个数字列表,但是一般来说,我们可以使用任何种类对象的任何类型的序列!在后面的章节,我们将详细探讨这个想法。
C/C++/Java/C#程序要注意:
Python的for循环完全不同于C/c++的for循环。c#程序员会注意到,在Python中for循环类似于c中的foreach循环c#。Java程序员会注意到,同样类似于在Java 1.5中的to for (int i : IntArray)。
在C/c++中,如果你想写for (int i = 0; i 5; i++),那么在Python中你只要写 for i in range(0,5)。正如您可以看到的,在Python中for循环更简单,更富有表现力且不易出错。
在循环体一个变量作为flag,初值为0
循环体中对flag变量进行判断,flag值为0才执行红框语句,并对flag赋值1
伺候进入循环体由于flag值为1,不会再执行红框语句
图片是倒的。
题目的主要目标是实现阶加运算。图中阶加功能是使用递归函数f()来实现的。
要想使这一功能循环,自然有规则要循环体中完成输入、调用f()、输出。
因此,可以修改为:
#def f(x):
# if x 0:
# return x + f(x-1)
# else
# return 0
f = lambda x: 0 if x == 0 else f(x - 1) + x
a = input('input:')
while a.isdigit():
print(f(int(a)))
a=input('input:') #再次
else:
print('input is not digit.')
如果函数执行了return语句,那么函数的生命就结束了,return 语句后面的代码都不会执行。所以准确的说,函数里只能执行一次return语句,但可以写多条return语句。比如这样:
def test_return(x):
if x 0:
return x
else:
return 0