为什么输入123总是显示‘输入有误’?
num =input('请输入数字:')
if type(eval(num)) in [float,complex]:
print(eval(num)**2)
elif type(eval(num))==int:
if '+' or '*' or 'x' in num:
print("输入有误")
elif num.isdecimal():
print(eval(num) ** 2)
if '+' or '*' or 'x' in num
改为
if '+' in num or '*' in num or 'x' in num
优先级问题,你这么写,实际判断的是 '+' or '*' or ('x' in num)
'+'不是0,所以为真,那么整个or表达式就是真
if '+' or '*' or 'x' in num:
改为
if '+' in num or '*' in num or 'x' in num:
这才是你实际的目标,判断num中是否有这三个字符
改成这样:
num = input('请输入数字:')
if type(eval(num)) in [float, complex]:
print(eval(num) ** 2)
elif type(eval(num)) == int:
if '+' in num or '*' in num or 'x' in num:
print("输入有误")
elif num.isdecimal():
print(eval(num) ** 2)