为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Qyouu 2023-10-06 16:28:12
当尝试运行此代码时,它似乎坚持认为变量 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))


查看完整回答
反对 回复 2023-10-06
?
交互式爱情

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)


查看完整回答
反对 回复 2023-10-06
?
慕的地6264312

TA贡献1817条经验 获得超6个赞

做:

abs(int(x))

再次将 x 转换为整数


查看完整回答
反对 回复 2023-10-06
  • 3 回答
  • 0 关注
  • 124 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信