是BB啊 发表于 2021-4-21 19:40:00

python第29讲

>>> for each in f:
        (name, saying) = each.split(':')

       
Traceback (most recent call last):
File "<pyshell#5>", line 2, in <module>
    (name, saying) = each.split(':')
ValueError: need more than 1 value to unpack

为什么会报错啊,有没有大佬救命

wp231957 发表于 2021-4-21 19:41:25

参数不够分,说白了就是再each里没有找到冒号

昨非 发表于 2021-4-21 19:45:17

检查你的对话文本是否存在中文:
可能肉眼看不出来,些许差别就会出错的

是BB啊 发表于 2021-4-21 19:46:38

wp231957 发表于 2021-4-21 19:41
参数不够分,说白了就是再each里没有找到冒号

我懂了,谢谢

阿奇_o 发表于 2021-4-21 19:57:47

你这样写 each 里 根据 ‘:’ 来分割,
得到的字符,会 要么1个,要么2个,3个,到N个,
左边则只有两个变量要赋值,除非你右边 each.split(':') 刚好分割出2个,不然,都会报错,要么多了,要么少了。
如果你只需要分割后的前两个,更通用更容错的写法是:
a, b, *_ = '1 2 3 4 567'.split()

是BB啊 发表于 2021-4-21 20:01:06

阿奇_o 发表于 2021-4-21 19:57
你这样写 each 里 根据 ‘:’ 来分割,
得到的字符,会 要么1个,要么2个,3个,到N个,
左边则只有两个 ...

去试了一下,确实可以,学到了,谢谢大佬
页: [1]
查看完整版本: python第29讲