鱼C论坛

 找回密码
 立即注册
查看: 1250|回复: 6

[已解决]错在哪里

[复制链接]
发表于 2020-3-22 15:59:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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)
最佳答案
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个”。
如果我回答的对,且你能看明白, 就给个最佳答案呗。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-22 16:00:54 From FishC Mobile | 显示全部楼层
你那俩逗号明显不一样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-22 16:22:51 | 显示全部楼层
。。。
第一行,用了中文的标点符号
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-22 16:53:04 | 显示全部楼层
第一行的标点用成中文的了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-22 18:16:11 | 显示全部楼层
第二个逗号你用的中文逗号,使用split你用的关键字是英文逗号,所以切片后返回的是['1000','小甲鱼,男'],列表元素只有两个,所以报错参数不足
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-22 18:36:45 From FishC Mobile | 显示全部楼层
中文的逗号
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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个”。
如果我回答的对,且你能看明白, 就给个最佳答案呗。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 07:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表