鱼C论坛

 找回密码
 立即注册
查看: 2932|回复: 7

python for 2个元素

[复制链接]
发表于 2016-2-19 20:10:59 | 显示全部楼层 |阅读模式

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

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

x
def store(data, full_name):
    names = full_name.split()
    if len(names) == 2: names.insert(1, '')
    labels = 'first', 'middle', 'last'
for label, name in zip(labels, names):
    people = lookup(data, label, name)
    if people:
        people.append(full_name)
    else:
        data[label][name] = [full_name]


错误:for label, name in zip(labels, names):
NameError: name 'labels' is not defined
该怎么办?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-2-19 20:35:39 | 显示全部楼层
写的很清楚呀,labels没定义呀
NameError: name 'labels' is not defined
你的labels是在store()函数里面的局部变量,出了那个函数就不能用了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2016-2-20 11:30:43 | 显示全部楼层
我是按照python基础教程里的例子打的啊。它前面也没有对label 进行定义。问一下,怎么解决,要事前先定义一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-2-20 11:31:59 | 显示全部楼层
shuofxz 发表于 2016-2-19 20:35
写的很清楚呀,labels没定义呀
NameError: name 'labels' is not defined
你的labels是在store()函数里面 ...


我是按照python基础教程里的例子打的啊。它前面也没有对label 进行定义。问一下,怎么解决,要事前先定义一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-2-20 11:38:31 | 显示全部楼层
局部变量可以不改,加个return值也行。而且你函数都没调用,必然没有数据。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-2-20 13:05:39 | 显示全部楼层
你的labels是个局部变量,你需要在函数末尾加个return labels把他返回出来,再用一个叫labels的全局变量保存起来像这样labels = store(data, full_name)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-2-20 18:07:08 | 显示全部楼层
zjk 发表于 2016-2-20 13:05
你的labels是个局部变量,你需要在函数末尾加个return labels把他返回出来,再用一个叫labels的全局变量保 ...

嗯,谢谢,我试试。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-2-20 20:10:07 | 显示全部楼层
def store(data, full_names):
        for full_name in full_names:
                names = full_name.split()
                if len(names) == 2: names.insert(1, '')
                labels = 'first', 'middle', 'last'
                for label, name in zip(labels, names):
                        people = lookup(data, label, name)
                        if people:
                                people.append(full_name)
                        else:
                                data[label][name] = [full_name]

这样就好了,还是感谢大家的热情回复。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-23 03:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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