use*_*416 4 python if-statement exception-handling while-loop
我刚刚开始使用Python 2.7,我不明白为什么会发生什么:
在下面的代码中,来自python 2.7.2教程的示例的装饰版本,我得到了一个意想不到的结果:
while True:
try:
x = int(raw_input("Please enter a number: "))
break
except ValueError:
print "Oops! That was not a valid number. Try again..."
else:
print 'Thanks,',x,'is indeed an integer'
finally:
print 'all done, bye'
Run Code Online (Sandbox Code Playgroud)
当我输入一个整数时,代码会忽略该else:语句并直接切入finally:.显然它与while True:顶部有关但为什么会发生?
She*_*ock 19
break语句正在退出循环,因此永远不会达到else语句.
把break放在else子句中,就像这样:
while True:
try:
x = int(raw_input("Please enter a number: "))
except ValueError:
print "Oops! That was not a valid number. Try again..."
else:
print 'Thanks,',x,'is indeed an integer'
break
print 'all done, bye'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
45192 次 |
| 最近记录: |