繁体   English   中英

我找不到导致我的程序停止运行的原因,但所有内容都进入了单独的功能

[英]I cant find whats causing my program to stop working after i but everything into separate functions

因此,我最初具有外部功能。 意味着在任何地方都没有“ def”或“ return”。 并且所有显示都很好。

但是现在,我试图使用Main函数作为调用其他函数的开关。 我的输出消失了,当我输入'1'时,'1'会重复出现在我身上。 我很困惑自己在哪里犯错了。

然后,我尝试在输入“ a”后返回主函数,但我不知道该怎么做。

谁能帮我解决这个问题?

如果有帮助,请在树莓派上使用Thonny Python IDE。

这是我的代码:

import sys, random

def main():
    slct= input()
    if slct==1:
        set1()
    elif slct==2:
        set2()
    elif slct ==3:
        set3()
    return

def set1():
    n1= random.randint(0,9)
    pw1= random.randint(1,3)

    print(n1)
    if pw1==1:
        print('one')
    elif pw1:
        print('ten')
    else:
        print('hundred')
    return

def set2():
    n2= random.randint(0,9)
    pw2= random.randint(1,3)

    print(n2)
    if pw2==1:
        print('thousand')
    elif pw2:
        print('ten thousand')
    else:
        print('hundred thousand')
    return

def set3():
    n3= random.randint(0,9)
    pw3= random.randint(1,3)

    print(n3)
    if pw3==1:
        print('one million')
    elif pw3:
        print('ten million')
    else:
        print('hundred million')
    return

您需要调用main()。

在文件末尾添加main()

另外,除非您想返回任何值,例如您不需要return "passed"否则您无需在每个函数的末尾添加return

我不知道您在用这段代码做什么,但是由于set1(),set2()和set3()是相同的,因此以下代码也与您的代码类似:

import sys, random

def main():
    n1= random.randint(0,9)
    pw1= random.randint(1,3)

    print(n1)
    if pw1==1:
        print('one')
    elif pw1:
        print('ten')
    else:
        print('hundred')
    return

main()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM