【问题标题】:Python - How can I put a range of user inputs into a functionPython - 如何将一系列用户输入放入函数中
【发布时间】:2020-11-01 23:09:21
【问题描述】:

这是我的python代码:

def calc_average(arg1, arg2, arg3, arg4, arg5):
    average = (arg1 + arg2 + arg3 + arg4 + arg5) / 5
    return print("The average of your scores is ", average)

for number in range(1, 6):
    scores = float(input("Enter test score " + str(number) + " of 5: "))
    
calc_average(scores) #This does not work. It counts as 1 argument instead of 5.

函数 calc_average 接受 5 个参数并将它们除以 5,创建一个平均值。 'for number in range(1,6):' 要求用户输入测试分数 5 次。我希望能够将这 5 个用户输入放入函数 calc_average。我怎样才能做到这一点?我只做了几个星期的python,我并不擅长它。这其实是我第一次使用函数。

【问题讨论】:

标签: python function for-loop input range


【解决方案1】:

创建一个列表,例如scores。您将在 for 循环的每次迭代中附加一个数字。然后使用此列表调用您的calc_average 函数:

def calc_average(arg1, arg2, arg3, arg4, arg5):
    average = (arg1 + arg2 + arg3 + arg4 + arg5) / 5
    return "The average of your scores is " + str(average)

scores = []
for number in range(1, 6):
    n = float(input("Enter test score " + str(number) + " of 5: "))
    scores.append(n)
    
print(calc_average(*scores))

打印(例如):

Enter test score 1 of 5: 1
Enter test score 2 of 5: 2
Enter test score 3 of 5: 3
Enter test score 4 of 5: 4
Enter test score 5 of 5: 5
The average of your scores is  3.0

注意:您可以像 calc_average(scores[0], scores[1], scores[2], scores[3], scores[4]) 这样调用您的函数,但使用 * 将列表解压缩为函数参数更容易。


注意 2:return print(...) 总是返回 None。只需返回一个字符串,然后打印它。

【讨论】:

    【解决方案2】:

    简单地说,你可以通过使用列表来解决这个问题:

    解决方案: calc_average 的参数是一个列表:

    def calc_average(scores):
       return sum(scores)/len(scores)
    
    scores = []
    for number in range(1, 6):
        scores.append(float(input("Enter test score " + str(number) + " of 5: ")))
    
    calc_average(scores)
    

    PS:

    您可以使用统计库中的 mean() 函数

    from statistics import mean
    def calc_average(scores):
       return mean(scores)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-24
      • 1970-01-01
      • 2013-01-03
      • 1970-01-01
      • 2015-09-17
      • 1970-01-01
      • 2021-06-29
      • 2023-04-08
      相关资源
      最近更新 更多