while True:ten=input('Enter a number:')if type(eval(ten))==type(int):break
2 回答

Helenr
TA貢獻1780條經驗 獲得超4個贊
具體解決辦法如下:
第一個方案:
1.復制代碼,如下,
while True:
ten=input("x:")
try:
x=eval(ten)
if type(x)==int:
break
except:
pass
2.然后輸入asf,沒有提示。輸入344就退出了
x:asf
x:344
第二個方案
1.復制代碼
while True:
ten=None
try:
ten=int(input("x:"))
except:
pass
if type(ten)==int:
break
這個在python3.0上調試通過
第三個方案:python2.x的方案
while True:
ten=raw_input("Enter a number:")
if ten.isdigit():
break
ten=int(ten) #或者是ten=eval(ten)

猛跑小豬
TA貢獻1858條經驗 獲得超8個贊
首先你使用的input的函數,但是input函數必須接受的類型為數字你輸入非數字的字母會報錯。
其次如果你輸入了數字你這個程序也不會正常工作,ten的類型可能是float也可能是int 但是eval接受的參數類型必須是字符串,所以這句if也會出錯。
改為 if type(ten) is type(1):break
添加回答
舉報
0/150
提交
取消