isalpha()if语句被忽略python

时间:2018-06-18 18:20:31

标签: python python-3.x

出于某种原因,当我尝试在if语句中使用isalpha()时,它会一直被忽略并继续到下一行。如果我使用isdigit(),代码将按预期工作。我只是想了解为什么isalpha()在这里不起作用?

user_input1 = input("Enter the first number")
if user_input1 == user_input1.isalpha():
    print ("Please use only numbers")
user_input2 = input("Enter the second number")
add_ints = int(user_input1) + int(user_input2)
print (user_input1,"+" ,user_input2, "=", add_ints)

1 个答案:

答案 0 :(得分:0)

您的代码中有两个错误。

首先,执行user_input1 == user_input1.isalpha()比较字符串和布尔值,这将始终为False

其次,检查user_input1.isalpha()检查字符串是否仅由字母字符组成。如果只有一些字符是按字母顺序排列的,则不会打印。

'123a'.isalpha() # False

如果notstr.isdigit中的任何字符不是数字,那么您要打印的是。

user_input1 = input("Enter the first number: ")
if not user_input1.isdigit():
    print ("Please use only numbers")

或者,您始终可以尝试将输入转换为int并捕获异常。

try:
    num1 = int(input("Enter the first number: "))
    num2 = int(input("Enter the second number: "))
    print(f'{num1} + {num2} = {num1 + num2}')
except ValueError:
    print("Please use only numbers...")