Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 保存用户输入的数字并获得平均值_Python_User Input - Fatal编程技术网

Python 保存用户输入的数字并获得平均值

Python 保存用户输入的数字并获得平均值,python,user-input,Python,User Input,2.7.x 你会如何保存每个数字并最终得到平均值? 在那行代码之前,它是: rate = raw_input('Rating: ') 非常感谢 编辑: 在对代码进行调整后,我得到了以下结果: for i in range(n): 现在,问题是,每当我输入一个数字进行评级时,它在文件中返回为“无”。为什么?将值附加到列表中: L = [] for i in range(n): line = raw_input('Next Track: ') m = L.append(

2.7.x

你会如何保存每个数字并最终得到平均值? 在那行代码之前,它是:

 rate = raw_input('Rating: ')
非常感谢

编辑:

在对代码进行调整后,我得到了以下结果:

for i in range(n):

现在,问题是,每当我输入一个数字进行评级时,它在文件中返回为“无”。为什么?

将值附加到列表中:

  L = []

for i in range(n):

    line = raw_input('Next Track: ')
    m = L.append(raw_input('Rating: '))
    overall = sum(map(int, L)) / len(L)

    f.write("Track Name: " + line + " - Rating: " + str(m) + "\n")
f.close()

f = open('music.txt','a')



print "Overall Rating: ", overall


f = open("music.txt", 'a')
f.write("Overall Rating: " + str(overall) + "\n")
f.write("---------------------------\n")
f.close
然后,您可以得到列表的平均值:

L = []
for i in range(n):
    L.append(raw_input('Rating: '))
或者,您可以使用列表:

sum(map(int, L)) / len(l)

但是,如果您处理的是浮动,则使用此项获得平均值:

L = [int(raw_input('Rating: ')) for _ in range(n)]
sum(L) / len(L)
来自未来导入除法
/
更改为真正的除法运算符。True division在Python3中是活动的,但正如在Python2.7中一样,您可以直接导入它


您的代码存在一些问题:

L.append(原始输入('Rating:'))
返回
None
。您不需要将其分配给变量,所以请去掉
m=

但是,您似乎希望保留
m
的值,以便将其写入文件中。然后,您可以执行以下操作:

from __future__ import division
sum(L) / len(L)
由于
raw\u input()
返回字符串,因此也不需要使用
str(m)


最后,在打开文件时,应该使用
with
语句。这将保存调用
close()

您也可以使用一次完成此操作:

with open('music.txt','a') as f:
    for i in range(n):
        line = raw_input('Next Track: ')
        m = raw_input("Rating: ")
        L.append(m)
        overall = sum(map(int, L)) / len(L)
        f.write("Track Name: " + line + " - Rating: " + m + "\n")
但这只有在您还不知道
n
等于什么的情况下才有用,在您的情况下,我会这样做:

>>> avg = 0.0
>>> for i in range(3):
        avg = (avg * i + float(raw_input('Rating: '))) / (i + 1)


Rating: 3
Rating: 5
Rating: 7
>>> avg
5.0

list.append
返回
None
,不要尝试保存结果非常感谢,你帮我省去了很多挫折:P@BrianFuller没问题:)。还有,很抱歉回答得有点长lol:p
>>> avg = 0.0
>>> for i in range(3):
        avg = (avg * i + float(raw_input('Rating: '))) / (i + 1)


Rating: 3
Rating: 5
Rating: 7
>>> avg
5.0
>>> avg, n = 0.0, 3
>>> for i in range(n):
        avg += float(raw_input('Rating: '))


Rating: 3
Rating: 5
Rating: 7
>>> avg /= n
>>> avg
5.0