如何解决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
解决方法
&
是按位的,并且比比较具有更强的约束力。所以这行:
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 举报,一经查实,本站将立刻删除。