Variable comes up as a string; TypeError: bad operand type for abs(): 'str'
Variable comes up as a string; TypeError: bad operand type for abs(): 'str'
当尝试 运行 这段代码时,它似乎坚持认为变量 x 是一个字符串,即使在仔细检查它是一个整数并将其转换为一个之后也是如此。
import time
x = 0
while 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)
break
abs(x)
正如标题所说,我得到的响应错误是这样的:
TypeError: bad operand type for abs(): 'str'
其他基本操作数也会出现这种情况。为什么它将变量检测为字符串,我该如何修复它?
做:
abs(int(x))
再次将 x 转换为整数
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))
函数 int() 接受一个参数,如果可能,将其转换为 int。它 returns 转换后的参数,但不修改它。因此,您可以按照以下示例使用它:
i=int("123")
i=int(12.5)
s="123"
i=int(s)
line = input("Please give a value for X.")
i=int(line)
当尝试 运行 这段代码时,它似乎坚持认为变量 x 是一个字符串,即使在仔细检查它是一个整数并将其转换为一个之后也是如此。
import time
x = 0
while 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)
break
abs(x)
正如标题所说,我得到的响应错误是这样的:
TypeError: bad operand type for abs(): 'str'
其他基本操作数也会出现这种情况。为什么它将变量检测为字符串,我该如何修复它?
做:
abs(int(x))
再次将 x 转换为整数
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))
函数 int() 接受一个参数,如果可能,将其转换为 int。它 returns 转换后的参数,但不修改它。因此,您可以按照以下示例使用它:
i=int("123")
i=int(12.5)
s="123"
i=int(s)
line = input("Please give a value for X.")
i=int(line)