Python跳过true if语句



作为一个学校项目,我试图用Python从头开始构建一个简单的计算器应用程序,但Python环境似乎不接受我的if函数。

这是我的代码:

# Calculator Script
print("At this moment this script is only able to support basic calculating like adding, subtracting, dividing and multiplying a maximum of 2 numbers at a time.")
val1 = input("Enter First Value: ")
val2 = input("Enter Second Value: ")
print("First Value is "+ str(val1)+ ", Second Value is "+ str(val2))
print("Enter Calculation Operation!")
print("1: Addition")
print("2: Subtraction")
print("3: Multiplication")
print("4: Division")
clx = input("Enter your choice: ")
if clx == 1:
clxprint = str("Adding")
clx = str("+")
print(str(clxprint))
if clx == 2:
clxprint = str("Subtracting")
clx = str("-")
if clx == 3:
clxprint = str("Multiplying")
clx = str("*")
if clx == 4:
clxprint = str("Dividing")
clx = str("/")
else:
print("Error")
exit()
print("Processing Operation...")
print(str(clxprint)+ " "+ str(val1)+ "by "+ str(val2))

正如你所看到的,它还没有完成,但我想在继续之前先解决这个问题。在为val1val2输入一些占位符之后,我输入哪个选项似乎无关紧要,因为它总是返回"0";错误";。

以下是完整输出:

At this moment this script is only able to support basic calculating like adding, subtracting, dividing and multiplying a maximum of 2 numbers at a time.
Enter First Value: 1
Enter Second Value: 2
First Value is 1, Second Value is 2
Enter Calculation Operation!
1: Addition
2: Subtraction
3: Multiplication
4: Division
Enter your choice: 3
Error
Process finished with exit code 0

Python input((函数返回一个字符串类型。您使用clx作为字符串类型,并将其与一些整数值进行比较,因此if语句永远不会为true,并且您总是转到'else'语句。

要解决此问题,请按照以下方式编写:

clx=int(input("…"((
Gius的答案是正确的。这只是一个提示。尽可能使用elif而不是if。在您的代码中,您有一个if来检查每个可能的clx值,虽然他的值很好,但您确实应该使用elifelif只是else if,并且不会启动新的if代码块。在原始代码中,第4个if块将始终运行,因此即使选择了其他选项之一,也可能会打印错误消息。elif的不会发生这种情况
if clx == 1:
clxprint = str("Adding")
clx = str("+")
print(str(clxprint))
elif clx == 2:
clxprint = str("Subtracting")
clx = str("-")
elif clx == 3:
clxprint = str("Multiplying")
clx = str("*")
elif clx == 4:
clxprint = str("Dividing")
clx = str("/")
else:
print("Error")
exit()

此外,在您的print语句中,您不必使用str转换所有变量,它们都已经是字符串了。

您确定要检查的是整数而不是字符串吗?

最新更新