当尝试运行此代码时,它似乎坚持认为变量 x 是一个字符串,即使在仔细检查它是一个整数并将其转换为 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)正如标题中提到的,我得到的响应错误是这样的:TypeError: bad operand type for abs(): 'str'对于其他基本操作数也会发生这种情况。为什么它将变量检测为字符串以及如何修复它?
3 回答
qq_遁去的一_1
TA贡献1725条经验 获得超7个赞
当您将 X 变量转换为 int 时,该变量并未更新。应该是的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贡献1712条经验 获得超3个赞
函数 int() 接受一个参数,如果可能,将其转换为 int。它返回转换后的参数,但不修改它。因此,您可以按以下示例使用它:
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
提交
取消