返回变量和True循环

时间:2014-03-01 17:19:20

标签: python function return return-value

我想在一个函数中执行代码,该函数向用户询问2个数字,并返回它们。然后在第二个函数中,我想“导入”这两个值并将它们打印给用户,并将它们添加到数组中。但是,这似乎仅在while True循环中的每2个循环之后起作用(如果执行代码,您将看到我的意思)。

def function1():
    var1 = raw_input("Please enter a number")
    var2 = raw_input("Please enter another number")
    return var1,var2

def function2():
    var1,var2 = function1()
    print 1,2

while True:
    function1()
    function2()

感谢您的帮助“

5 个答案:

答案 0 :(得分:0)

我认为你只需要:

while True:
    function2()

原因是function2本身已经调用了function1 - 你不想每次迭代都调用它两次。

您还应该检查function1是否正在打印正确的值!

答案 1 :(得分:0)

试试这个:

def function1():
    var1 = raw_input("Please enter a number")
    var2 = raw_input("Please enter another number")
    return var1,var2

def function2():
    var1,var2 = function1()
    print var1,var2

while True:
    function2()

答案 2 :(得分:0)

您只需在无限循环中调用function2

while True:
    function2()

function2在其正文中调用function1,因此它将管理输入用户。另外,您的function2定义应为:

def function2():
    var1,var2 = function1()
    print var1, var2

答案 3 :(得分:0)

当您直接致电function1时,您会收到两个变量,但不会对它们执行任何操作。

当您调用function2时,将function1中的两个变量分配给function2中的本地名称,然后打印两个整数(不是实际变量)并保留该函数。

如果要将它们添加到数组中,则需要执行此操作:

array = []
while True:
    array.extend(function1())

答案 4 :(得分:0)

第一次调用function1时,该函数会返回您输入的两个数字,但它们不会存储在任何位置。然后当你调用function2时,function1被称为再次,这使得用户输入变量1和2的 new 数字。如果你想输入你已经从中获得的数字function1,function2需要取两个数字作为参数。此外,无论输入是什么,总是打印数字1和2,因此您可能希望在function2中打印var1,var2而不是1,2。

此外,您不会将数字添加到数组中。你可能想要这样的东西:

def function1():
    var1 = raw_input("Please enter a number")
    var2 = raw_input("Please enter another number")
    return var1,var2

def function2(var1, var2):
    print var1,var2

#Make an empty array
array = []

while True:
    numbers = function1()
    function2(numbers[0], numbers[1])

    #Append the two numbers to the array
    array.append(numbers[0])
    array.append(numbers[1])

    print "The array now contains: " + ', '.join(array)