这是编码的新手,所以如果这是基本的,我很抱歉。
我这样做是作为一个项目,快速拉出有用的信息,同时飞行。一切都运行得很好,但我无法克服这一点。这个程序的目的是询问我想要什么数据。我希望能够输入短手glafail,它会问哪条跑道,然后根据我的答案拉起一个程序。如果我问glfail,不管它把我带到前面的elif分支,它会问我‘哪条跑道? 16或34?当它应该问’哪条跑道? 05还是23?我将非常感谢任何关于我哪里出错的想法?
elif answer == 'efailabz' or answer == 'engfailabz' or answer == 'efailegpd' or answer == 'engoutabz' or answer == 'eturnabz' or 'efail abz' or answer == 'engfail abz' or answer == 'efail egpd' or answer == 'engout abz' or answer == 'eturn abz':
print('')
print('')
print('')
print('which runway? 16 or 34?')
orient = input()
if orient == '16':
engpop(abdn16)
main()
elif orient == '34':
engpop(abdn34)
elif answer == 'glfail' or answer == 'engfailgla' or answer == 'efailegpf' or answer == 'engoutgla' or answer == 'eturngla' or 'efail gla' or answer == 'engfail gla' or answer == 'efail egpf' or answer == 'engout gla' or answer == 'eturn gla':
print('')
print('')
print('')
print('which runway? 05 or 23?')
orient = input()
if orient == '05':
engpop(gla05)
main()
elif orient == '23':
engpop(gla23)
main()发布于 2021-12-02 21:41:21
正如@The_Spider所指出的,这是answer == 'eturngla' or 'efail gla'内部的问题。
自从你提到你是编程新手以来,这里有一些给你的提示:
你可以缩短你的语句。使用@azro:指出的符号
if answer == 'efailabz' or answer == 'engfailabz' or answer == 'efailegpd' or answer == 'engoutabz' or answer == 'eturnabz' or 'efail abz' or answer == 'engfail abz' or answer == 'efail egpd' or answer == 'engout abz' or answer == 'eturn abz':
# do stuff可以这样写:
if answer in ['efailabz', 'engfailabz', 'efailegpd', 'engoutabz', 'eturnabz', 'efail abz', 'engfail abz', 'efail egpd', 'engout abz', 'eturn abz']:
# do more readable stuff避免将 main() 函数用于除启动程序之外的任何事情
许多语言(如C、C++、Java和其他几种语言)定义了一个必须称为
()的特殊函数,操作系统在执行编译后的程序时会自动调用该函数。这个函数通常被称为入口点,因为它是执行进入程序的地方。
相比之下,Python没有作为脚本入口点的特殊函数。实际上,您可以为Python脚本中的入口点函数指定任何您想要的名称!
尽管Python没有为名为main()的函数赋予任何意义,但最佳实践是将入口点命名为function main()。这样,阅读您的脚本的任何其他程序员都会立即知道,此函数是完成脚本主要任务的代码的起点。
来源:Defining Main Functions in Python (realpython.com)
在一个 print() 调用中打印多个换行符
您可以使用\n打印多个新行。如下所示:
print("\n\n\n")这将打印3个新的空行。
https://stackoverflow.com/questions/70143889
复制相似问题