【问题标题】:Printing an average in python, using a list使用列表在python中打印平均值
【发布时间】:2016-04-14 01:30:52
【问题描述】:

此代码需要计算平均值以检索 0-100 之间的整数。任何建议都会很棒。

  • 提示用户他们期望获得的点数 上课结束时的参与。这个数字不应该 由计划调整(参与度总数为 302)。
  • 根据测验分数的平均值计算最终结果 日期。
  • 提示用户输入各种分数。 -1 = 没有更多分数,0 - 该任务为零。继续循环获取成绩,直到用户 输入 -1。

这是我的代码,我绝对不是很了解列表。可能很清楚。

list1 = []
g=1
totalnum = 0
total=0
tot = int(input("Total Points? :"))
list1.append(tot)
eng = int(input("How many points do you expect to get in engangement, out of 302?: "))
list1.append(eng)

while g !=0:
    num = int(input("Please enter a grade"))
    if num == -1:
        break
    totalnum+=1
    total= total+num
    list1.append(num)

average= tot/eng+num
counter=0
while counter<totalnum:
    print(list1[counter])
    counter+=1

print("your average is",average)

【问题讨论】:

  • 'average= tot/eng+num' 行看起来很可疑。

标签: python list append average calculator


【解决方案1】:

如果您可以使用内置插件,则可以使用 sum(your_list) / len(your_list) 作为平均值。

如果len(your_list) 为零,您将得到ZeroDivisionError,因为您刚刚破坏了数学。

【讨论】:

  • 记得查看len(your_list) &gt;0
  • 讨厌的ZeroDivisionError 例外:[
【解决方案2】:

我不清楚这就是你想要完成的,但如果你只是想要列表中所有值的平均值,你可以这样做:

average = sum(list)/len(list)

这将返回一个整数,如果你不希望它四舍五入,你可以这样做:

average = sum(list)/float(len(list))

顺便说一句,你有这个:

counter=0
while counter<totalnum:
    print(list1[counter])
    counter+=1

这可以变得更简单,例如:

for e in list1:
    print e

Python 会帮你计算。 :)

【讨论】:

  • 记得检查 len(list) >0!
  • 一般来说这是一个很好的观点,但在这种情况下,列表由用户输入填充,所以看起来我们永远不会使用空列表进入这一步。
  • 这仍然没有给我一个平均值。该程序应该做的,基本上是计算一个学生的班级成绩,用户输入可能的总分,然后用户添加分数作为分数。因此,如果有人在测试中获得 9/10,则用户将输入数字 9。
【解决方案3】:
list1 = []
g=1
totalnum = 0
total=0

tot = int(input("Total Points? :"))
eng = int(input("How many points do you expect to get in engangement, out of 302?: "))
list1.append(eng)

while g !=0:
    num = int(input("Please enter a grade"))
    if num == -1:
        break
    else:
        list1.append(num)   
        totalnum+=1
        total= (num+eng)/tot
print(len(list1))  
average = (sum(list1)/tot)*100
counter=0
for e in list1:
    print (e)

print("your average is",average)

这正是我想要的。感谢@Tommy、@SQLnoob 和@Slayer 提供我在代码中实现的技巧。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-21
    • 2021-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-14
    相关资源
    最近更新 更多