我正在学习python,目前正在编写一个必须分成函数的简单程序。我的问题是我有一个函数应该为四个不同的变量返回字符串,然后应该在另一个函数中使用。
E.g。
def function1():
var1 = input("Write something: ")
var2 = input("Write something: ")
var3 = input("Write something: ")
def function2():
print(var1)
print(var2)
print(var3)
function1()
function2()
这给出了一条错误消息,因为在function2的框架中没有定义var1。该如何解决?为清楚起见,插图非常简化,但如果需要,我可以发布更具体的内容。
答案 0 :(得分:2)
返回function1
中的变量:
def function1():
var1 = input("Write something: ")
var2 = input("Write something: ")
var3 = input("Write something: ")
return var1, var2, var3
并在function2
中创建参数:
def function2(var1, var2, var3):
print(var1)
print(var2)
print(var3)
像这样打电话给他们:
var1, var2, var3 = function1()
function2(var1, var2, var3)
答案 1 :(得分:1)
这不是函数的用途。
有一个名为作用域的东西,它基本上表示在函数中声明的变量是 local 到该函数,并且不能被其他任何东西访问。如果需要将值传递给函数,请使用参数。
这一切都应该被你当前正在阅读的Python介绍所涵盖 - 只需阅读一两页:)
答案 2 :(得分:1)
正确的方法是从函数返回值并通过输入参数传递它们:
def function1():
var1 = input("Write something: ")
var2 = input("Write something: ")
var3 = input("Write something: ")
return var1, var2, var3
def function2(a, b, c):
print(a)
print(b)
print(c)
v1, v2, v3 = function1()
function2(v1, v2, v3)
我重命名了一些参数来强调任何地方都没有名称关系。显式返回并显式传递所有值。
答案 3 :(得分:0)
使用您当前的示例,更好的方法是重复使用相同的函数三次:
def function1():
return input("Write something: ")
def function2(var):
print(var)
for i in range(0, 3):
var = function1()
function2(var)
但最好还是返回function1
中的变量,然后将其传递给function2
。
def function1():
var1 = input("Write something: ")
var2 = input("Write something: ")
var3 = input("Write something: ")
return var1, var2, var3
def function2(var1, var2, var3):
print(var1)
print(var2)
print(var3)
var1, var2, var3 = function1()
function2(var1, var2, var3)
这取决于您的具体问题。