guo763939889 发表于 2020-8-23 18:01:15

关于python错误

---------------------------------------------------------------------------
ValueError                              Traceback (most recent call last)
<ipython-input-39-f0a5cb8841a0> in <module>()
      8   if each_line[:2] != '===' :
      9         #分割男女对话
---> 10         (role , speak) = each_line.split(':' , 1)
   11         if role == "小甲鱼":
   12             boy.append(speak)

ValueError: not enough values to unpack (expected 2, got 1)
这个错误是什么意思?
是不是测试用的txt文件出了问题?

1q23w31 发表于 2020-8-23 18:03:55

each_line.split(':' , 1)这句话仅返回一个列表
(role , speak) 而你给了两个变量,python不知道该赋值给谁

Twilight6 发表于 2020-8-23 18:08:36

本帖最后由 Twilight6 于 2020-8-23 18:11 编辑



if each_line[:2] != '==='
这个少一个等号,或者 [:2] 改成 [:3],如果没改导致你的 if 条件是永远成立的

所以你 split 切割等号那一行的时候时候,导致没有找到冒号,切割后只有一个元素

而你设置两个变量来接收这个切割后的元素导致报错

疾风怪盗 发表于 2020-8-23 18:14:57

(role , speak) = each_line.split(':' , 1)
这句话是对的吧,分割成两个元素

看下度娘的解答,检查下是不是文本内容有问题,多了换行符、空格或者‘:’不是英文的
https://blog.csdn.net/Saltwater_Room/article/details/99869184
https://www.cnblogs.com/hugboy/p/12517215.html

疾风怪盗 发表于 2020-8-23 18:24:02

Twilight6 发表于 2020-8-23 18:08
这个少一个等号,或者 [:2] 改成 [:3],如果没改导致你的 if 条件是永远成立的

所以你 split 切割 ...

你这是专职的么。。。。。又快又准。。。。。。

youricky 发表于 2020-8-24 01:20:00

还在努力学习,看不懂
页: [1]
查看完整版本: 关于python错误