如何从func1中获取var1并在func2中使用它,而又不会在func1中运行两次 - python

我有一个包含变量的func1,我想在func2中访问该变量。我尝试在下面的代码中返回func1中的变量,然后将变量"user_name"设置为函数"first_name_information",但这会使func1运行两次,我不想发生这种情况。

def func1():
    user_name = input("What's your name? ")

    if any(char.isdigit() for char in user_name):
        print("You can't put a number in your name.")
        sys.exit()
    else:
        pass

    return user_name

def func2():
    user_name = first_name_information()
    last_name = input("What's your last name {}? ".format(user_name))

    if any(char.isdigit() for char in last_name):
        print("You can't put a number in your last name.")
        sys.exit()
    else:
        pass

参考方案

您可以通过几种方法执行此操作,但可能对您的情况有好处,您只需从func2调用func1即可:

def func1():
    user_name = input("What's your name? ")
    if any(char.isdigit() for char in user_name):
        print("You can't put a number in your name.")
        sys.exit()
    return user_name

def func2():
    user_name = func1()
    last_name = input("What's your last name {}? ".format(user_name))

    if any(char.isdigit() for char in last_name):
        print("You can't put a number in your last name.")
        sys.exit()
    return (user_name, last_name)

func2()

您将需要从第二个函数返回并携带两个值,可能是一个元组。

似乎您在玩某种游戏,您可能应该改用class,这对于为用户存储信息更有意义。

另外,您还专门检查isdigit(),但是您可以使用.isalpha() [docs]检查整个字符串的字母字符

Python sqlite3数据库已锁定 - python

我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…

用大写字母拆分字符串,但忽略AAA Python Regex - python

我的正则表达式:vendor = "MyNameIsJoe. I'mWorkerInAAAinc." ven = re.split(r'(?<=[a-z])[A-Z]|[A-Z](?=[a-z])', vendor) 以大写字母分割字符串,例如:'我的名字是乔。 I'mWorkerInAAAinc”变成…

在当前目录下编写一个脚本,生成多个目录,创建空文件,然后列出所有文件。 - python

Closed. This question needs details or clarity。它当前不接受答案。                                                                                                                            …

如何在python中将从PDF提取的文本格式化为json - python

我已经使用pyPDF2提取了一些文本格式的发票PDF。我想将此文本文件转换为仅包含重要关键字和令牌的json文件。输出应该是这样的:#PurchaseOrder {"doctype":"PO", "orderingcompany":"Demo Company", "su…

查找字符串中的行数 - python

我正在创建一个python电影播放器​​/制作器,我想在多行字符串中找到行数。我想知道是否有任何内置函数或可以编写代码的函数来做到这一点:x = """ line1 line2 """ getLines(x) python大神给出的解决方案 如果换行符是'\n',则nlines …