试图让它运行超过 3 行文本,但我现在有的两行甚至不能正常工作。
文本文件是
74,85,65,56
97,67,83,96
这是我一直在处理的代码
file = open('grades.txt','r')
for x in file:
read = file.readline()
sep = read.split(",")
def toNumbers():
changeNum = [eval(x) for x in sep]
return changeNum
def sumlist():
total = 0
sum(pls)
average = sum(pls)/len(sep)
print ("Your average is: ", average)
def main():
sumlist()
pls = toNumbers()
main()
输出应该是
Your average is: 70.0
Your average is: 85.75
我得到的只有这个
Your average is: 85.75
当我在文本文件中添加第三行时出现此错误
SyntaxError: unexpected EOF while parsing
第三行也只是文本文件中的一行数字,可以从那里继续
74,85,65,56
97,67,83,96
10,20,30,40
输出应该是
Your average is: 70.0
Your average is: 85.75
Your average is: 25.0
最佳答案
这很简单。
for x in file:
已经遍历文件的行,但是您忽略了 x
的值,这是第一行的内容。您只需使用以下内容获取第二行的内容:
read = file.readline()
添加另一行会导致错误,因为您告诉 Python 要做的是对于文件中的每一行,读取下一行
,因此 for
循环将每一行奇数放入x
然后每一个偶数行都存储在read
中。因此,只有偶数行的文件才会被处理而不会出错。
你想要这个:
for read in file:
sep = read.split(",")
编辑:完整示例:
def toNumbers(sep):
changeNum = [float(x) for x in sep]
return changeNum
def sumlist(sep):
total = 0
sum(pls)
average = sum(pls)/len(sep)
print ("Your average is: ", average)
def main():
file = open('grades.txt','r')
for read in file:
sep = read.split(",")
sep = toNumbers(sep)
sumlist(sep)
main()
关于python - 为什么 for 循环不遍历我所有的 readlines?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46768660/