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

Python-Else语句中的If/Elif/Else语句即使满足If约束也会打印,python,if-statement,printing,output,Python,If Statement,Printing,Output,我在编程的第一个月,我在开发的一个应用程序中遇到了一个问题。我相信这对于有经验的人来说相当简单,但我不知道如何在没有语法错误的情况下修复它。这是我的代码(请参阅下面的输出错误) 因此输入函数可以工作,但不管我输入了什么数字(1、2或3),else命令下的“print”总是打印。以下是输出内容,例如: 你想找什么? 1=坡度,2=较高标高,3=较低标高 : 1 选择与要查找的内容对应的数字 插入较高的标高: 因此,在这之后,我有更多的代码来创建更高高程的提示,但我只想知道如何确保它运行后不会打印e

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

因此输入函数可以工作,但不管我输入了什么数字(1、2或3),else命令下的“print”总是打印。以下是输出内容,例如:

你想找什么? 1=坡度,2=较高标高,3=较低标高 : 1 选择与要查找的内容对应的数字 插入较高的标高:

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

来自一个非常缺乏经验的程序员,提前感谢您的帮助

更新:在修改并使用其他人的输入后,我得到的是:

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语句的一个对应数字之后):

你想找什么?
1=坡度,2=较高标高,3=较低标高
: 1
回溯(最近一次呼叫最后一次):
文件“gcalc.py”,第24行,在
找什么
文件“gcalc.py”,第15行,在要查找的内容中
查找坡度()
名称错误:未定义名称“查找坡度”

不知道这是如何发生的,也不知道为什么对“find”开头的更改会导致此输出。请帮帮我!感谢为了消除对每个if语句执行
int(find)
的开销,只需在初始用户输入上实现所需的条件,如下所示:

 find = int(input(": "))
然后每个if语句都可以检查如下值:

 if find == 1:
   #run this scope

等等……

条件不正确。想想
input
返回的是什么类型,以及
1
是什么类型。您输入的值是错误的。尝试
int(find)==1
type(find)
is
str
。您正在将
str
int
进行比较
str
int
不相等。谢谢大家!我会尝试一下,让你知道完全有道理,但请看我的更新我的问题。输入完成后,输出现在不起作用,我不知道为什么。因此,在更新的代码中,您正在调用3个其他函数,这些函数可能属于同一类,或者来自未在此范围内定义的另一个文件。您必须查看
find_scope()
是在哪里定义的,它是如何定义的,以及如何调用它(您大部分都已经这样做了). 或者这些函数代表什么,这是作用域的要点。好的,我会继续努力,看看是否可以让它运行,并让您知道。谢谢你的帮助,我仍在努力解决这个问题,也许你也可以在这里添加其他部分,看看社区是否能看到错误所在:)我明白了!在定义函数find_slope()之前,我调用了what_to_find()。一旦我将函数调用what_to_find()移到它下面,它就能够找到并运行了!谢谢你的帮助!
 find = int(input(": "))
 if find == 1:
   #run this scope