Python 如何计算文本文件中每个人的平均人数
嗨,我想创建一个代码,读取一个文本文件并打印文件中每个人的平均值,我在文件夹中有这个Python 如何计算文本文件中每个人的平均人数,python,python-3.x,function,Python,Python 3.x,Function,嗨,我想创建一个代码,读取一个文本文件并打印文件中每个人的平均值,我在文件夹中有这个 boys.txt ed lin,3,1,4,2 thomas block,6,3,3 所以我想打印一些像 ed lin: 2.5 thomas block: 4 但我不知道如何继续,我的代码出现错误请尝试将其他文件更改为: from Functions import read_txt file_txt = input("input file: ") lines read_txt(fi
boys.txt
ed lin,3,1,4,2
thomas block,6,3,3
所以我想打印一些像
ed lin: 2.5
thomas block: 4
但我不知道如何继续,我的代码出现错误请尝试将其他文件更改为:
from Functions import read_txt
file_txt = input("input file: ")
lines read_txt(file_txt)
lines = '\n'.join(['%s: %s' % (line.split(',')[0], sum(list(map(int, line.strip().split(',')[1:]))) / len(line.strip().split(',')[1:])) for line in lines])
print(lines)
输出:
ed lin: 2.5
thomas block: 4
我不知道为什么不允许使用格式,但如果不使用格式,它会有点太乏味。。。同时,这里还有另一种方法
with open("boys.txt", "r") as f:
contents = f.read()
lines = contents.strip().split("\n")
for l in lines:
boy = l.split(",")
length = len(boy)
score = 0
for i in range(1, length):
score += int(boy[i])
average = score / (length-1)
print("{}: {}".format(boy[0], average))
你也可以使用
from Functions import read_txt
file_txt = input("input file: ")
with open(file_txt, 'r') as f:
lines = f.readlines()
for line in lines:
name = line[0: line.index(',')]
data = [int(num) for num in (line[line.index(',')+1:].split(','))]
nums = len(data)
data = sum(data)
print(f"{name}: {data/nums}")
谢谢,有没有别的办法?我不能使用像%或{,}这样的字符串格式,不能在中使用,也不能使用map()或filter(),神学院希望我学习如何在没有它的情况下做到这一点
with open("boys.txt", "r") as f:
contents = f.read()
lines = contents.strip().split("\n")
for l in lines:
boy = l.split(",")
length = len(boy)
score = 0
for i in range(1, length):
score += int(boy[i])
average = score / (length-1)
print("{}: {}".format(boy[0], average))
from Functions import read_txt
file_txt = input("input file: ")
with open(file_txt, 'r') as f:
lines = f.readlines()
for line in lines:
name = line[0: line.index(',')]
data = [int(num) for num in (line[line.index(',')+1:].split(','))]
nums = len(data)
data = sum(data)
print(f"{name}: {data/nums}")