从'If'语句调用函数

时间:2016-01-09 19:50:57

标签: python function python-3.x if-statement

我正在使用Python 3,并且在尝试从if语句调用函数时遇到错误,以下代码是完整代码的简化版本但具有相同的结果我正在徘徊如何克服这一点和允许程序运行student()函数

import sys

def logon():
    print("Welcome, please enter your account type")
    acctype = input()
    if acctype == 'teacher':
        sys.exit()
    elif acctype == 'student':
        student()

logon()


def student():
    print("Please enter your name") 
    name = input()

    print("Please enter your class number")
    classnumber = input()

输入单词student后出现问题,因为错误返回

NameError: name 'student' is not defined

1 个答案:

答案 0 :(得分:2)

Python从上到下运行代码。每个def行创建一个函数对象并将其存储为全局名称。

运行logon()行时,def logon(): ...语句已执行且函数存在。但是,尚未达到def student(): ...语句,因此没有 这样的函数。因此,当logon()函数尝试调用student()函数时,会出现NameError异常。

将调用该函数的logon()行移至下面的 def student(): ...语句。