2014-03-01 76 views
0

我想在询问2号用户一个函数来执行代码,并把它们的同时返回。然后在第二个函数中,我想“导入”这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() 

感谢您的帮助”

+0

你每次循环调用'function1'两次:一次从循环本身和一次从'function2' ...这有帮助吗? – isedev

+0

此外,你的代码不依赖于'var1'和'var2' - 它总是打印'1 2' – Dunno

+0

,你永远不会把它们添加到任何列表中 – zhangxaochen

回答

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() 
0

我想你只需要:

while True: 
    function2() 

这样做的原因是,函数2本身已经调用功能1 - 你不想两次叫它每次迭代

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

0

你只需要调用function2在您的无限循环:

while True: 
    function2() 

function2呼吁在它的身上function1,所以它会管理输入用户。此外,您function2定义应该是:

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

当你直接打电话function1,你得到的两个变量回来,但不跟他们做任何事。

当您拨打function2时,将function1这两个变量分配给function2中的本地名称,然后打印两个整数(不是实际变量)并离开该功能。

如果你想将它们添加到一个数组,你需要做的是:

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

当你调用功能1是第一次,该函数返回您输入的两个数字,但它们不是存储任何地方。当你再调用函数2,功能1被称为再次,如果你想导入你已经从功能1,函数2需要采取两个数字作为一个人多势众,这使得用户输入为变量1和2的新号码论据。此外,你总是打印数字1和2,无论输入什么,所以你可能会想打印VAR1,VAR2,而不是在函数2 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)