if语句中的调用函数-Python3
因此,我尝试使用Python3在终端中编写登录对话,但出于某种原因,此代码:if语句中的调用函数-Python3,python,python-3.x,Python,Python 3.x,因此,我尝试使用Python3在终端中编写登录对话,但出于某种原因,此代码: def start(): login\u sign\u Confirmation=input(“欢迎!您想登录到您的帐户还是注册到此平台?\n”) 如果登录确认=“登录”: 登录() 其他: 注册() 开始() def login(): login\u username=input(“太好了!首先输入您的用户名。”) 如果在用户中登录\u用户名: 打印(“欢迎回来,{login\u username}”) 登录()
def start():
login\u sign\u Confirmation=input(“欢迎!您想登录到您的帐户还是注册到此平台?\n”)
如果登录确认=“登录”:
登录()
其他:
注册()
开始()
def login():
login\u username=input(“太好了!首先输入您的用户名。”)
如果在用户中登录\u用户名:
打印(“欢迎回来,{login\u username}”)
登录()
提示我此错误消息:
Welcome! Do you wish to log-in to your account or sign up to this platform?
login
Traceback (most recent call last):
File "login.py", line 22, in <module>
start()
File "login.py", line 19, in start
login()
NameError: name 'login' is not defined
欢迎!您希望登录到您的帐户还是注册到此平台?
登录
回溯(最近一次呼叫最后一次):
文件“login.py”,第22行,在
开始()
文件“login.py”,第19行,开始
登录()
NameError:未定义名称“login”
刚开始一些我不确定我做错了什么,我找不到有同样问题的人…正如其他人指出的,您需要首先定义,然后调用函数:
# imports first
# now definitions of functions
def start():
login_signin_Confirmation = input("Welcome! Do you wish to log-in to your account or sign up to this platform? \n")
if login_signin_Confirmation == "login":
login()
else:
signup()
def signup():
pass
def login():
login_username = input("Great! start by typing in your username.")
if login_username in users:
print("Welcome Back, {login_username}")
# main
def main():
start()
# guard multiprocess context
if __name__ == '__main__':
main()
无法运行尚未定义的函数。在定义
login
之前调用start()
,并且start
尝试调用login()
。Python是解释语言,它不是编译器,因此它只能使用在使用之前定义的函数。为什么要使用下一票?这个问题很有道理。它可能是重复的,但你不可能知道网站上提出的每一个问题。@Asocia Downvote,因为“这个问题没有显示任何研究成果”,在Google或其他网站上搜索会返回大量相关结果。此外,不要忘了在print语句中使用正确的f-string语法(字符串前的“f”)。(或使用.format(…)
)