我正处于编程的第一个月,而我正在开发的应用程序遇到了问题。我确信对于有经验的人来说这相当简单,但是我不知道如何在没有语法错误的情况下进行修复。这是我的代码(有关输出错误,请参见下文)
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
不确定这种情况是怎么发生的,或者不确定为什么对开始的“查找”进行更改会产生此输出。请帮帮我!谢谢
答案 0 :(得分:0)
要消除在每个if语句上执行int(find)
的开销,只需在初始用户输入上实现所需条件,如下所示:
find = int(input(": "))
然后每个if语句都可以只检查像这样的值:
if find == 1:
#run this scope
等等等...