首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python程序在elif上卡住

Python程序在elif上卡住
EN

Stack Overflow用户
提问于 2021-11-28 13:30:44
回答 1查看 63关注 0票数 0

这是编码的新手,所以如果这是基本的,我很抱歉。

我这样做是作为一个项目,快速拉出有用的信息,同时飞行。一切都运行得很好,但我无法克服这一点。这个程序的目的是询问我想要什么数据。我希望能够输入短手glafail,它会问哪条跑道,然后根据我的答案拉起一个程序。如果我问glfail,不管它把我带到前面的elif分支,它会问我‘哪条跑道? 16或34?当它应该问’哪条跑道? 05还是23?我将非常感谢任何关于我哪里出错的想法?

代码语言:javascript
复制
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()
EN

回答 1

Stack Overflow用户

发布于 2021-12-02 21:41:21

正如@The_Spider所指出的,这是answer == 'eturngla' or 'efail gla'内部的问题。

自从你提到你是编程新手以来,这里有一些给你的提示:

你可以缩短你的语句。使用@azro:指出的符号

代码语言:javascript
复制
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

可以这样写:

代码语言:javascript
复制
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打印多个新行。如下所示:

代码语言:javascript
复制
print("\n\n\n")

这将打印3个新的空行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70143889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档