誰能告訴我,爲什麼下面的失敗:Python「if」是否評估「and」的雙方?
teststr = "foo"
if not teststr.isdigit() and int(teststr) != 1:
pass
有:
ValueError: invalid literal for int() with base 10: 'foo'
在C如果在&&
測試第一部分失敗右手邊不再被評估。這在Python中有什麼不同?
編輯:我很愚蠢。 and
當然應該是or
.....
也許'不是'導致第一部分評估爲真? –
'如果不是teststr.isdigit()'? –
@JohnBoker如果我括號,它仍然失敗:'if(not teststr.isdigit())and(int(teststr)!= 1):' – RickyA