python - 链接来自不同函数的变量以打印它们

标签 python

我对 Python 还很陌生,目前正在学习函数。我创建了一个简单的程序,要求用户提供一些信息,然后打印它。但是,我在将一个函数的 return 变量链接到另一函数中的 print() 语句时遇到问题。 这是我到目前为止所拥有的:

def ask_data():
    name = input("What's your name?: ")
    last_name = input("What's your last name?: ")
    age = input("how old are you?: ")
    return(name, last_name, age)

def print_data(data):
    print("Your name is ", name, last_name)
    print("and you are ", age, "years old")

def main():
    data = ask_data()
    print_data(data)

main()

我的问题是我能够输入所有信息,这意味着 ask_data() 正在工作。但是,当调用 print_data() 时,我收到一条错误消息,指出变量 namelast_nameage找不到。如果这是问题所在,我该如何链接这两个函数?

最佳答案

你已经很接近了。要记住的是,在您的 main 函数中,变量 data 引用一个元组,因此在 print_data 中您实际上无法引用 直接输入 namelast_nameage。您必须首先“解压”元组中的值,如下所示:

def print_data(data):
    name, last_name, age = data
    print("Your name is ", name, last_name)
    print("and you are ", age, "years old")

要记住的是,在函数中声明的变量保留在该函数中。 ask_data 内的变量 name 保留在 ask_data 中。您正确地将所有值包装在一个元组中并返回它,然后将该元组传递给 print_data (这很好!),但 print_data 不知道原始名称这些值(value)观。您必须在 print_data 中创建变量,因为局部变量的名称对于定义它们的每个函数来说都是“私有(private)”的。

关于python - 链接来自不同函数的变量以打印它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55661158/

相关文章:

python - _tkinter.TclError : invalid command name ".54600176" error, 这是怎么回事?

python - 从多个源 IP 发送流量 Scapy

python - python : Determine which data are associated with each centroid 中的 k 均值

python - 在受控条件下使用 'exec' 是否构成安全威胁?

python - 为什么我每次打开 cmd 都需要激活 conda 和我的 venv?这是正常的吗?

python - 绘制简单的形状并保存到文件 (pdf)

python - 具有共享 x 轴的 Seaborn 图

python : Getting the Row which has the closest value to 5 in groups using groupby

Python Pygame 力量

python - 在 Heroku 上安装 PyICU