猿问

变量以字符串形式出现;类型错误:abs() 的操作数类型错误:“str”

当尝试运行此代码时,它似乎坚持认为变量 x 是一个字符串,即使在仔细检查它是一个整数并将其转换为 1 之后也是如此。


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'

对于其他基本操作数也会发生这种情况。为什么它将变量检测为字符串以及如何修复它?


Qyouu
浏览 128回答 3
3回答

qq_遁去的一_1

当您将 X 变量转换为 int 时,该变量并未更新。应该是的x = int(x)。import timex = 0while 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)        breakprint(abs(x))

交互式爱情

函数 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)

慕的地6264312

做:abs(int(x))再次将 x 转换为整数
随时随地看视频慕课网APP

相关分类

Python
我要回答