为什么max在python中是一个空序列
我是一个相当有经验的程序员,但我无法理解python中的这个问题。它引用的文本文件的布局如下所示为什么max在python中是一个空序列,python,max,Python,Max,我是一个相当有经验的程序员,但我无法理解python中的这个问题。它引用的文本文件的布局如下所示 Jeff 4 7 7 Rich 2 1 9 Chris 4 6 5 然而,当我运行代码时,它会计算出前两组数据,而不是最后一组。代码是: with open(classno, 'r') as f: #it doesn't write last score and for line in f: nums_str = line.split()[1:]
Jeff 4 7 7
Rich 2 1 9
Chris 4 6 5
然而,当我运行代码时,它会计算出前两组数据,而不是最后一组。代码是:
with open(classno, 'r') as f: #it doesn't write last score and
for line in f:
nums_str = line.split()[1:]
nums = [int(n) for n in nums_str]
max_in_line = max(nums) #uses last score of it need to combine
print (max_in_line)
with open('class11.txt', 'r') as f:
parts = line.split()
if len(parts) > 2:
name = str(parts[0])
f = open(classno, 'a')
f.write(("\n") + (name) + (" ") + str(max_in_line))
f.close()
…但在文本文件的最后一行,它说:
max() arg is an empty sequence
可能您的文件末尾有一个换行符,因此您正在读取一个空行。试试这个:
for line in f:
if line:
....
可能您的文件末尾有一个换行符,因此您正在读取一个空行。试试这个:
for line in f:
if line:
....
使用
with open(classno, 'r') as f:
在内部循环中:
with open('class11.txt', 'r') as f:
为这些变量指定不同的名称。您可以使用在最外层的
中重新定义f
with open(classno, 'r') as f:
在内部循环中:
with open('class11.txt', 'r') as f:
给这些变量起不同的名字。没有冒犯,但是有经验的开发人员会做一些琐碎的调试,比如print line
注意max()arg
不同于max
。后者是一个内置函数;前者是给定给该函数的参数。错误是指出您给出的参数不正确,而不是max
本身“是”一个空序列(这毫无意义)。(同样,在你的最后一句话中,想法可能是有益的或受欢迎的;你对这些想法的反应可能是“感激”,但这些想法本身并不表示感激,这就是“感激”一词的意思。)无意冒犯,但有经验的开发人员会做一些琐碎的调试,如打印行
注意max()arg
与max
不同。后者是一个内置函数;前者是给定给该函数的参数。错误是指出您给出的参数不正确,而不是max
本身“是”一个空序列(这毫无意义)。(同样,在你的最后一句话中,想法是有益的或受欢迎的;你对这些想法的反应可能是“感激”,但这些想法本身并不是在表达感激,这就是“感激”一词的意思。)另外,不应明确地称为f.close()<代码>与
一起处理这个问题。@DFSFDSFS同样,在r
模式下打开不允许写入,这就是正在进行的操作。另外,不应显式调用f.close()
<代码>与
一起处理这个问题。@DFSFDSFS同样,在r
模式下打开不允许写入,这就是正在进行的操作。