【问题标题】:ValueError when I run a file in Python当我在 Python 中运行文件时出现 ValueError
【发布时间】:2016-01-20 18:07:16
【问题描述】:

我使用的是 Python 3,运行这个文件时遇到了一点问题。

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

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

【问题讨论】:

  • 看起来结果等于 [] 并且 max([]) 引发 ValueError
  • 您确实需要在此处修复缩进,python 对空格敏感,因此此处的缩进可能会导致您的问题。
  • 如果您的问题得到解决,请在可能的情况下删除您的问题,或者接受(或发布)答案。删除您的问题内容对任何人都没有帮助。
  • @deceze 如果问题解决了,删除它对任何人都没有好处

标签: python error-handling arguments


【解决方案1】:

这里的部分问题可能与缩进有关,因为 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 是否确实包含元素。

【讨论】:

    【解决方案2】:

    您的数据文件中的某些行至少有五个项目,因此在您的 if 语句下缩进的内容都不会运行,包括附加到 result 列表的 for 循环。因此,max() 的参数是一个空列表,您会收到您指出的错误。

    (在您发布的代码中还有其他缩进错误,包括使其无法运行的缩进错误。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-29
      • 2018-11-09
      • 2023-01-02
      • 2021-03-08
      • 1970-01-01
      • 2022-06-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多