在python中调用函数,获得';(函数)未定义';?

在python中调用函数,获得';(函数)未定义';?,python,function,Python,Function,我最近开始学习Python,这里有一些代码 ... workout = input("Work out if you won?") if workout == "y": ballone() elif workout == "n": print("Okay.") sys.exit("Not working out if you won") else: sys.exit("Could not understand") ##Ball one def ballone(

我最近开始学习Python,这里有一些代码

...
workout = input("Work out if you won?")

if workout == "y":
    ballone()
elif workout == "n":
    print("Okay.")
    sys.exit("Not working out if you won")
else:
    sys.exit("Could not understand")

##Ball one
def ballone():
...
问题是“气球”。您可以看到,当从命令行(ballone())调用它时,它已定义并可以完美地工作


有什么想法吗?我搜遍了网,但似乎找不到任何帮助我的东西。如果需要发布更多代码,请告诉我:)

将函数定义移动到使用它的行之前

def ballone():
    # ...

if workout == "y":
    ballone()
elif workout == "n":
    print("Okay.")
    sys.exit("Not working out if you won")
else:
    sys.exit("Could not understand")

函数存储在标识符(变量)中,就像您的
训练
值一样。如果不先定义它,Python怎么知道以后会定义它呢?

通常是将主逻辑放在函数中,并在模块底部调用它,通常由
保护,如果
@StevenRumbalski:
\uuuu name\uuuuuu
测试不会保护您免受此错误的影响。如果你在模块的顶部这样做,你仍然会遇到同样的问题。是的,但我确实这样做了。@StevenRumbalski:是的,你这样做了。现在看来这很明显了!:/我有PHP、HTML、CSS、jQuery等方面的经验。。。谢谢你的其他答案:D&谢谢你这么快。我以前用雅虎回答这类问题,但现在这是我的家;):D