CD84380973 发表于 2020-3-22 15:59:02

错在哪里

data= "1000,小甲鱼,男"
MyDict = {}

(MyDict['id'],MyDict['name'],MyDict['sex']) = data.split(',')

print('ID:'+ MyDict['id'])
print('Name:'+ MyDict['name'])
print('sex:'+ MyDict['sex'])


Traceback (most recent call last):
File "C:/Users/ASUS/Desktop/python/25-1.py", line 4, in <module>
    (MyDict['id'],MyDict['name'],MyDict['sex']) = data.split(',')
ValueError: not enough values to unpack (expected 3, got 2)

wp231957 发表于 2020-3-22 16:00:54

你那俩逗号明显不一样

qiuyouzhi 发表于 2020-3-22 16:22:51

。。。
第一行,用了中文的标点符号

乘号 发表于 2020-3-22 16:53:04

第一行的标点用成中文的了

hkrookie 发表于 2020-3-22 18:16:11

第二个逗号你用的中文逗号,使用split你用的关键字是英文逗号,所以切片后返回的是['1000','小甲鱼,男'],列表元素只有两个,所以报错参数不足

_2_ 发表于 2020-3-22 18:36:45

中文的逗号

coolsummer2080 发表于 2020-3-22 19:18:50

>>> data= "1000,小甲鱼,男"
>>> MyDict = {}
>>> (MyDict['id'],MyDict['name'],MyDict['sex']) = data.split(',')
Traceback (most recent call last):
File "<pyshell#41>", line 1, in <module>
    (MyDict['id'],MyDict['name'],MyDict['sex']) = data.split(',')
ValueError: not enough values to unpack (expected 3, got 2)
>>>
问题出在第1行对data的赋值。你的第2个逗号使用了中文标点,后面你调用data.split方法时使用的是英文的分隔符,而在原串里只有1个英文逗号。所以原串被分成两段。把两段赋值给3个变量,错误是的解释是明显的,“期望有3个值,却只给了2个”。
如果我回答的对,且你能看明白,{:5_109:} {:5_109:} {:5_109:} 就给个最佳答案呗。{:5_109:} {:5_109:} {:5_109:}
页: [1]
查看完整版本: 错在哪里