Python中的If / Elif / Else语句-即使满足if约束,也会打印Else语句

时间:2020-02-23 00:27:00

标签: python if-statement printing output

我正处于编程的第一个月,而我正在开发的应用程序遇到了问题。我确信对于有经验的人来说这相当简单,但是我不知道如何在没有语法错误的情况下进行修复。这是我的代码(有关输出错误,请参见下文)

def what_to_find():
    find = (input(": "))
    if find == int(1):
        find_slope()
    elif find == int(2):
        find_elevation1()
    elif find == int(3):
        find_elevation2()
    else:
        print("Choose a number corresponding to what you want to find")


what_to_find()

因此输入函数可以工作,但是无论我输入多少(1、2或3),else命令下的“ print”始终会打印。例如,以下是输出:

您要查找什么? 1 =坡度,2 =较高的海拔,3 =较低的海拔 :1 选择与您要查找的内容相对应的数字 插入更高的高度:

因此,在此之后,我还有更多代码创建了更高海拔的提示,但是我只想知道如何确保它在运行后不会打印else语句。另外,我还在IDE中使用Visual Studio Code。

对于一个经验不足的编码人员,请先感谢您的帮助!

更新:修改并使用其他人的输入后,这就是我的意思

def what_to_find():
    find = int(input(": "))
    if find == 1:
        find_slope()
    elif find == 2:
        find_elevation1()
    elif find == 3:
        find_elevation2()
    else:
        print("Choose a number corresponding to what you want to find")


what_to_find()

所有这些都有意义,将其作为输出(在我插入了if语句的相应数字之一之后):

What are you trying to find?
1 = Slope, 2 = Higher Elevation, 3 = Lower Elevation
: 1
Traceback (most recent call last):
  File "gcalc.py", line 24, in <module>
    what_to_find()
  File "gcalc.py", line 15, in what_to_find
    find_slope()
NameError: name 'find_slope' is not defined

不确定这种情况是怎么发生的,或者不确定为什么对开始的“查找”进行更改会产生此输出。请帮帮我!谢谢

1 个答案:

答案 0 :(得分:0)

要消除在每个if语句上执行int(find)的开销,只需在初始用户输入上实现所需条件,如下所示:

 find = int(input(": "))

然后每个if语句都可以只检查像这样的值:

 if find == 1:
   #run this scope

等等等...