出于某种原因,当我尝试在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)
答案 0 :(得分:0)
您的代码中有两个错误。
首先,执行user_input1 == user_input1.isalpha()
比较字符串和布尔值,这将始终为False
。
其次,检查user_input1.isalpha()
检查字符串是否仅由字母字符组成。如果只有一些字符是按字母顺序排列的,则不会打印。
'123a'.isalpha() # False
如果not
和str.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...")