python valueerror:要解压的值太多

新手上路,请多包涵

我是 python 初学者。我试图运行这段代码:

 def main():
    print ( " This program computes the average of two exam scores . ")
    score1,score2 = input ("Enter two scores separated by a comma:")
    average = (score1 + score2)/2.0
    print ("The average of the score is : " , average )

当我召唤 main() 我得到这个 ValueError

 ValueError: too many values to unpack (expected 2)

这段代码有什么问题?

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

阅读 404
2 个回答
  1. 您需要拆分收到的输入,因为它全部到达一个字符串
  2. 然后,您需要将它们转换为数字,因为术语 score1 + score2 将进行字符串添加,否则您将得到一个错误。

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

你需要在逗号上分开:

 score1,score2 = input ("Enter two scores separated by a comma:").split(",")

但是请注意 score1score2 仍然是字符串。您需要使用 floatint 将它们转换为数字(取决于您想要的数字类型)。

看一个例子:

 >>> score1,score2 = input("Enter two scores separated by a comma:").split(",")
Enter two scores separated by a comma:1,2
>>> score1
'1'
>>> score1 = int(score1)
>>> score1
1
>>> score1 = float(score1)
>>> score1
1.0
>>>

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

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