繁体   English   中英

从“ If”语句中调用函数

[英]Calling a Function from an '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()

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

NameError: name 'student' is not defined

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

运行logon()行时,已执行def logon(): ...语句,并且该函数存在。 然而, def student(): ...声明尚未达到,所以没有这样的功能 因此,当logon()函数尝试调用student()函数时,您将收到NameError异常。

将调用函数的logon()行移到def student(): ...语句下方

暂无
暂无

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

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