微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

TypeError:&不支持的操作数类型:“ int”和“ float”

如何解决TypeError:&不支持的操作数类型:“ int”和“ float”

我刚刚开始学习python,在if-else程序中,我偶然发现了该错误。程序要求用户输入数字,并显示其位数。这是代码

`

num: int = int(input("enter a number : "))
   num = math.fabs(num)
   if (num < 10):
        print("number has 1 digit")
    elif (num >= 10 & num < 100):
        print("number has 2 digits")
    elif (num >= 100 & num < 1000):
        print("number has 3 digits")
    elif (num >= 1000 & num < 10000):
        print("number has 4 digits")
    elif (num >= 10000 & num < 100000):
        print("number has 5 digits")
    elif (num >= 100000 & num < 1000000):
        print("number has 6 digits")
    elif (num >= 1000000 & num < 10000000):
        print("number has 7 digits")
    elif (num >= 10000000 & num < 100000000):
        print("number has 8 digits")
    elif (num >= 100000000 & num < 1000000000):
        print("number has 9 digits")
    else:
        print("the number has 10 digits")`

错误消息:D:\ venv \ Scripts \ python.exe“ D:/ python projects / conditionalStatements.py” 输入数字:1000 追溯(最近一次通话): 在第7行的文件“ D:/ python projects / conditionalStatements.py” elif(num> = 10&num

退出代码1完成的过程

解决方法

&是按位的,并且比比较具有更强的约束力。所以这行:

elif (num >= 10 & num < 100):

被解释为这,这不是您想要的。

elif (num >= (10 & num) < 100):

相反,请使用and关键字...

elif num >= 10 and num < 100:

...或比较链。

elif 10 <= num < 100:

当然,您也可以只使用对数或数字if/elif表示形式的len替换所有str检查:

print(f"number has {len(str(num))} digit")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。