我寫下了python代碼。 我發現python2和python3對於1.1的輸入有完全不同的運行結果。 爲什麼python2和python3有這種區別? 對於我來說,int(1.1)應該是1,那麼位置是在範圍0,1,2內的有效索引1。那麼你能解釋爲什麼python3有這樣的結果嗎?python2和python3的區別 - int()和input()
s=[1,2,3]
while True:
value=input()
print('value:',value)
try:
position=int(value)
print('position',position)
print('result',s[position])
except IndexError as err:
print('out of index')
except Exception as other:
print('sth else broke',other)
$ python temp.py
1.1
('value:', 1.1)
('position', 1)
('result', 2)
$ python3 temp.py
1.1
value: 1.1
sth else broke invalid literal for int() with base 10: '1.1'
爲了使它真的有效,你可以做position = int(float(value)) –
你可以嘗試驗證值的類型嗎? –