我对 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()
时,我收到一条错误消息,指出变量 name
、last_name
和 age
找不到。如果这是问题所在,我该如何链接这两个函数?
最佳答案
你已经很接近了。要记住的是,在您的 main
函数中,变量 data
引用一个元组,因此在 print_data
中您实际上无法引用 直接输入 name
、last_name
和 age
。您必须首先“解压”元组中的值,如下所示:
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/