2016-01-20 84 views
1

我正在使用Python 3,并且在运行此文件时有一点问题。ValueError当我在Python中运行文件

txt = input("Which file do you want to use?") 
file = codecs.open(txt,"r","utf-8") 


player=[] 
name=None 
longest_cast=0 
result=[] 

for line in file: 
row=line.split() 
row_1=len(row[1]) 
row_2=len(row[2]) 

if len(row)<5: 
    mu=float(row[1]) 
    sigma=float(row[2]) 


    for r in range(0,6): 
     cast=random.normalvariate(mu,sigma) 
     result.append(cast) 

if max(result)>longest_cast: 
      longest_cast=max(result) 
      name=row[0] 

print("The winner is", name, "who got", longest_cast, "meters. Congrats! :)") 

我得到这个错误代码。

ValueError: max() arg is an empty sequence 

我该怎么办?有什么建议么?

+0

看起来结果等于[]和max([])抛出ValueError异常 –

+1

你真的需要在这里修正你的缩进,python是空白敏感的,所以这里的缩进可能会导致你的问题。 – shuttle87

+0

如果您的问题已解决,请删除您的问题(如有可能),或接受(或发布)答案。删除您的问题内容对任何人都没有帮助。 – deceze

回答

0

这里的部分问题可能与缩进相关,因为python是空白敏感的。在max被称为一个空序列的情况下,你会得到一个ValueError

>>> max([]) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ValueError: max() arg is an empty sequence 
>>> max('') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ValueError: max() arg is an empty sequence 

您需要检查result实际包含的元素首先。

0

一些在数据文件中的行至少有五个项目,所以没有下你if声明缩进的东西永远运行,包括for循环,追加到result列表。因此max()的参数是一个空列表,你会得到你指出的错误。

(有代码中的其他缩进错误张贴,包括一个将保持它运行在所有。)