我想在一个函数中执行代码,该函数向用户询问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 :(得分: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)