‘壹’ python中函数嵌套循环语句时,return 如何正确使用返回值
return
会直接另函数返回,函数就运行结束了,所有该函数体内的代码都不再执行了,所以该函数体内的循环也不可能再继续运行。
如果你需要让循环继续执行,就不能return函数,而应该选用break或者continue。
break:跳出所在的当前整个循环,到外层代码继续执行。
continue:跳出本次循环,从下一个迭代继续运行循环,内层循环执行完毕,外层代码继续运行。
return:直接返回函数,所有该函数体内的代码(包括循环体)都不会再执行。
‘贰’ 请教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
其实这个函数是返回斐波那契数列的一个类。
不明白可追问。
‘叁’ python函数中,for循环然后return 出来
defget_mm():
l=[]
forxinrange(1,5):
l.append(x)
returnl
print(get_mm())
‘肆’ Python中的返回值问题!!!
首先,代码有误,你想调用的应该是
sorted([4,3,2,1])
reversed([4,3,2,1])
然后,你所说的reversed的返回值类型也不正确。
sorted返回的是list,reversed返回的是iterator。
list你应该很熟悉了。iterator和list是完全不同的东西。简单的说iterator只是提供一个接口,每次迭代可以产生一个值,到没有值为止。iterator在很多语言里面都有实现。在python里面主要用在for循环和list comprehension。
iterator和list/tuple/dict/set等容器的关系:
1.python内置的容器类几乎都实现了iterator接口。
显式获取某个容器的iterator可以调用iter函数:
l = [1,2,3,4]
i = iter(l)
//现在i就是一个list iterator。可以用来遍历l这个list.
i.next() # 1
i.next() # 2
//每一个iterator都必须实现next方法。并且在没有元素时抛出StopIteration异常。
在for语句和list comprehension中,都是隐式调用了这个函数。所以可以直接
for obj in some_container:
pass
2.某些容器可以通过iterator进行初始化,比如list
l = [1,2,3,4]
i = iter(l)
l2 = list(i)
最后,没有列表和列表对象这种说法。这两者一般都是指列表对象(instance of the type list)。如果你是想说列表类(the list type)本身,可以这样得到:
type([])
或者
[].__class__
‘伍’ python中for循环的用法
for循环的语法格式如下:
for iterating_var in sequence:
statements(s)
for循环可以遍历任何序列的项目,如一个列表或者一个字符串。for-in 循环中的变量的值受 for-in 循环控制,该变量将会在每次循环开始时自动被赋值,因此程序不应该在循环中对该变量赋值。
for-in 循环可用于遍历任何可选代对象。所谓可迭代对象,就是指该对象中包含一个 __iter__ 方法,且该方法的返回值对象具有 next() 方法。
(5)pythonfor循环返回值扩展阅读:
Python中的另一个循环语句——while语句
while是一个条件循环语句。while中的代码块会一直循环执行,直到循环条件不再为真。但是用户必须小心的使用while循环,因为有可能条件永远不会为假,这样一来循环就永远不会结束。
这些“无限”的循环不一定是坏事,许多通讯服务器的客户端/服务器系统就是通过它来工作的,因为服务器代码就是用来等待客户端来连接的。
这些客户端向服务器发送请求,服务器处理请求,请求处理后,服务器向客户端返回数据,而此时客户端可能断开连接。对于服务器而言它已经完成了对这个客户端的任务,它会返回最外层循环等待下一个连接。