不断收到 ValueError:没有足够的值来解压(预期 2,得到 1)

新手上路,请多包涵

我的任务:

编写一个简短的 Python 函数 minmax(data),它接受一个或多个数字的序列,并以长度为 2 的元组的形式返回最小和最大的数字。不要在实施解决方案时使用内置函数 min 或 max。

这是代码:

 def minmax():
    data = input("Enter a list of any input > ")
    max, min = data[0]
    for x in data:
        if x > max:
            max = x
        elif x < min:
            min = x
    print (max, min)
minmax()

这给了我 ValueError: not enough values to unpack (expected 2, got 1) 。我该如何解决?

原文由 Mozammil Khan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 574
1 个回答

您使用了错误的语法。我相信您要做的是将 minmax 初始化为列表的第一个元素。您使用的赋值是多重赋值——左边有两个变量,右边必须有两个值。

但是,您希望用户输入就可以了;只需 split 输入您选择的分隔符,然后将其用于 split

另外,请记住将值从字符串转换为整数(留给学生作为练习)。

您给出的错误的重要语法是

min = max = data[0]

现在 你可以继续你的循环了。

原文由 Prune 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题