这个问题是我在做一道习题时解决的,之前也遇到过,在网上搜索没有得到解答,现在我来说一下,详情见http://t.csdn.cn/sQiml
另外补充一点关于break和return的用法说明:
break只能用于循环体中(这里仅指python),不能直接用于if语句,除非该if在一个循环体内,使用break后,会跳出循环体,执行所属循环语句下面的程序。break只会跳出它所属最近的那个循环,多层循环结构中,break如果写在内循环里,那么它会跳出内循环,继续执行外层大循环。
return的作用:
1.返回函数的返回值,并终止函数。
2.终止程序的运行,提前退出。
return 只出现在函数定义中,用于退出函数,选择性地向调用方返回一个表达式,且用在循环结构中时,它会直接将此时的返回值返回给主调函数(注意,这里不管有多少层循环,它都直接返回给最外层的主调函数),并且终止该循环,相当于它自带循环终止效果,所以不能和break连用,这个不能连用是指可能得不到你想要的结果,语法上是可以运行的。
Python中,用 def 语句创建函数时,可以用 return 语句指定应该返回的值,该返回值可以是任意类型。需要注意的是,return 语句在同一函数中可以出现多次,但只要有一个得到执行,就会直接结束函数的执行。见下例:
a=[3,2,4,9]
def f(x):
for k in [66,77,88,99]:
print(k)
for j in x:
if j%2==0:
return 'b'
else:
pass
return 'd'
print(f(a))
上述代码输出结果为
66
b
可见,当列表a的元素循环到2时,直接给出函数f的返回值b,并终止该函数,函数内的外层循环k到66就结束了,没有往下运行。
以上都是我实践中自己得出来的结论,如有差错,还请指出。