我希望下面的代码能够正常工作,因为第一个条件是假的,但它通过IndexError: string index out of range
。我错过了什么?
a = False
sample_strign = 'test'
if (a == True) & (sample_strign[7] == 's'):
print('foo')
答案 0 :(得分:6)
&
是一个逐位运算符。如果您希望解释器“短路”逻辑,请使用逻辑运算符and
。
if a and (sample_strign[7] == 's'):
答案 1 :(得分:1)
sameple_strign
没有引发异常的第7个索引,你应该使用类似的东西:
if a and len(sample_strign) > 7:
if sample_strign[7] == 's':
print('foo')