Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
if语句中的调用函数-Python3_Python_Python 3.x - Fatal编程技术网

if语句中的调用函数-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}”) 登录()

因此,我尝试使用Python3在终端中编写登录对话,但出于某种原因,此代码:

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(…)