返回多个整数作为独立变量

2021-01-26 09:24:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图做一个程序,从用户那里获取5个整数,然后找到它们的平均值。我已经设置好接受这5个数字,但是如何将它们作为单独的变量返回,以便以后可以使用它们?谢谢!在

def main():
    x = 0
    testScoreNumber = 1
    while x < 5:
        getNumber_0_100(testScoreNumber)
        x += 1
        testScoreNumber += 1

    calcAverage(score1, score2, score3, score4, score5)

    print(calculatedAverage)

def getNumber_0_100(testnumber):
    test = int(input("Enter test score " + str(testnumber) + ":"))
    testcount = 0
    while testcount < 1:
        test = int(input("Enter test score " + str(testnumber) + ":"))

        if test > 0 or test < 100:
            testcount += 1

    return test

^问题是,每次这个函数运行时,我都希望它向不同的变量返回不同的值。例如测试1、测试2、测试3。在

^{2}$
3条回答
网友
1楼 ·

Python允许您返回一个元组,您可以在收到返回值时展开这个元组。例如:

def return_multiple():
    # do something to calculate test1, test2, and test3
    return (test1, test2, test3)

val1, val2, val3 = return_multiple()

但是这里的限制是您需要知道返回了多少变量。如果输入的数量是可变的,那么最好使用列表。在

网友
2楼 ·

返回函数不负责说明调用方如何处理其返回值。在您的例子中,让main有一个列表来添加返回值是很简单的。你可以这样做:

scores = []
for i in range(5):
    scores.append(getNumber_0_100(i))

calcAverage(*scores)

请注意,*scores是将一个列表作为参数传递给calcalage函数。最好将calculateAverage设置为一个通用函数,它可以获取一个值列表并计算其平均值(即,不仅仅适用于五个数字):

^{pr2}$

那么你就用calcAverage(scores)来调用它

编写第一部分的python方法可能是scores = [getNumber_0_100(i) for i in range(5)]

网友
3楼 ·

你需要把结果存储在某个地方。通常(总是?)动态创建变量名是个坏主意(尽管可以使用globals)。存储结果的典型位置是列表或字典在本例中,我将使用列表。在

更改代码的这一部分:

x = 0
testScoreNumber = 1
while x < 5:
    getNumber_0_100(testScoreNumber)
    x += 1
    testScoreNumber += 1

收件人:

^{pr2}$

可以进一步浓缩:

results = [ getNumber_0_100(x+1) for x in range(5) ]

然后可以将结果列表传递给下一个函数:

avg = get_ave(results[0],results[1],...)
print(avg)

或者,您可以使用unpacking操作符进行速记:

avg = get_ave(*results)
print(avg)

相关问题