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