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

问题描述 投票:-1回答:1

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

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

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

python if-statement printing output
1个回答
0
投票

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

 find = int(input(": "))

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

 if find == 1:
   #run this scope

etc etc ...

© www.soinside.com 2019 - 2024. All rights reserved.