处理可能引发错误的条件语句的最pythonic方法是什么?例如:
if try testFunction() (except: pass):
如果给定长度为0的字符串,则上述语句将导致IndexError。
我想象的是这样的事情:
a = input()
for x in a:
i = int(x)
...但我知道那不行。那我该怎么办?
注意:此问题有很多解决方案。例如,我可以将if语句放在第二个if语句中......但这不会很优雅。我特意寻找最蟒蛇的解决方案。
答案 0 :(得分:6)
您必须将整个if
声明放在try..except
块中:
try:
if string[0] == "#":
# block executed when true
except IndexError:
# ..
但是有更好的选择:
首先提取一个字符:
try:
first = string[0]
except IndexError:
pass
else:
if first == '#':
# ...
首先测试字符串长度:
if string and string[0] == '#':
使用切片:
if string[:1] == '#':
如果string
为空,则切片会产生一个空字符串。
使用字符串方法:
if string.startswith('#'):