當(dāng)嘗試運行此代碼時,它似乎堅持認(rèn)為變量 x 是一個字符串,即使在仔細(xì)檢查它是一個整數(shù)并將其轉(zhuǎn)換為 1 之后也是如此。import timex = 0while True: print("") x = input("Please give a value for X.") try: int(x) except: print("") print("Sorry, please use an integer and try again!") time.sleep(1) else: int(x) breakabs(x)正如標(biāo)題中提到的,我得到的響應(yīng)錯誤是這樣的:TypeError: bad operand type for abs(): 'str'對于其他基本操作數(shù)也會發(fā)生這種情況。為什么它將變量檢測為字符串以及如何修復(fù)它?
3 回答

qq_遁去的一_1
TA貢獻(xiàn)1725條經(jīng)驗 獲得超8個贊
當(dāng)您將 X 變量轉(zhuǎn)換為 int 時,該變量并未更新。應(yīng)該是的x = int(x)。
import time
x = 0
while True:
print("")
x = input("Please give a value for X.")
try:
x = int(x)
except:
print("")
print("Sorry, please use an integer and try again!")
time.sleep(1)
else:
x = int(x)
break
print(abs(x))

交互式愛情
TA貢獻(xiàn)1712條經(jīng)驗 獲得超3個贊
函數(shù) int() 接受一個參數(shù),如果可能,將其轉(zhuǎn)換為 int。它返回轉(zhuǎn)換后的參數(shù),但不修改它。因此,您可以按以下示例使用它:
i=int("123")
i=int(12.5)
s="123"
i=int(s)
line = input("Please give a value for X.")
i=int(line)
添加回答
舉報
0/150
提交
取消