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

标签 python python-3.x

我的 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 - 如何从 func1 中获取 var1 并在 func2 中使用它而不在 func1 中运行两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55785333/

相关文章:

python - 如何在函数中使用变量来遍历yaml文件?

python-3.x - 删除具有高缺失值的列

python - 无法从网页中抓取不同项目的标题

javascript - 使用 javascript (jquery) 在 django 中重定向表单提交

python - SQLITE3 将 WHERE 语句误认为列名

python - Django 过滤器,得到了一个意想不到的关键字参数

python - basemap 和 Fiona 不会安装用于处理 iPython 笔记本中的 map 和 shp 文件

python - AttributeError functools.total_ordering

Python数据帧行包含多个字符串搜索列表

python - 如何获取图片上 Image.Draw 绘制的文本的宽度和高度?