鱼C论坛

 找回密码
 立即注册
查看: 2846|回复: 1

[技术交流] 第25讲习题代码与分析

[复制链接]
发表于 2014-9-9 12:06:53 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 mumudontcry 于 2014-9-9 13:31 编辑

木木回来了,嘘……木木在上班过程中,用不到半兆的网速发帖
其实这讲的内容我很早(大概在断更之前)就已经看过了,只是那个时候说是找工作,然后就不想发帖子
好,下面是正题,有什么私聊我(嘘……)
测试题:
1
注意!
('F': 70, 'C': 67, 'h': 104, 'i': 105, 's': 115)不是元组,别问我为什么,你敲了代码就知道
另外,
l=[('F', 70), ('i',105), ('s',115), ('h',104), ('C',67)]
dict(l)
也是可以的,输出是:
{'F': 70, 'i': 105, 'h': 104, 'C': 67, 's': 115}
就是说,你可以把元组,列表转化成字典
至于l=[('F', 70,"木木"), ('i',105), ('s',115), ('h',104), ('C',67)]……显然不行,因为列表的第一个元素(是个元组)并不是只包含两个元素,python给出的错误提示是:
ValueError: dictionary update sequence element #0 has length 3; 2 is required
意思就是说,字典更新序列元素长度是3,但是只能是2
嗯……还有这里的值前面都有一个空格(小甲鱼你傲娇了)
2
发现了小甲鱼的秘密:把“字典”写成了“宇典”,老实交代,是不是用五笔输入?!
好吧,进入正题:
如果{}里不是键值对的形式,那么这就是集合,集合其实也可以看作是字典,只是只有键,没有值的字典,不要在意这些细节
这个答案没有唯一,你可以把集合看作是字典
3
这里就要说到列表和字典的一个很大的区别了,列表是利用位置索引的,而字典是利用键值对,字典和集合都是无序的,有的时候,我们用列表的位置来索引感觉上很不方便,不直观,这个时候用字典就显得方便些
4
字典的各种创建方式,木木表示只会b和d,另外,d中的[]可以改成()
5
嗯……木木忘了>_<,不过一说,我想到了一个比较重要的东西,把代码改下:
data = "1000 小甲鱼 男"
MyDict = {}
(MyDict['id'], MyDict['name'], MyDict['sex']) = data.split()
结果依然成立,为什么?因为split的默认参数是空格,data里是用空格分割的


动动手:
先去吃饭,回来再说
这段程序其实没有什么难的,从头读下来很明了(嗯……注意if-else的层次,反正木木一开始就看走眼了)

这里说几个需要注意的地方:
1、像这样的程序,可以实现在草稿纸上写下每一个功能里面具体要有什么操作,比如:
在插入之前判断是否已经存在有联系人了,如果有的话,要怎么处理(这里是提示是否修改)
把每一个功能的具体情况都分析好了,再用if语句一个一个写肯定就没有问题了
2、第3个功能里面有段代码:
del(contacts[name])
这里的del是在列表里删除某个元素用的,当然字典里也可以适用,至于后面的注释:也可以使用dict.pop()
具体的写法应该是:dict.pop(name),用这个其实比del好,这个在很早就有讲过,dict.pop()相当于把准备删除的元素给存起来了,用这个的话,你可以打印出来或者再保存起来(如果你对它念念不忘的话)
3、第2个功能里,木木觉得要输入“YES”或者“NO”比较麻烦,真实情况下,如果要考虑用户体验的话,最好多加几种,比如y/n,Y/N,yes/no……




最后,中秋快乐(好像是昨天吧?whatever~~)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
点击
当没节操甲鱼遇上傲娇笨笨的木木
查看我的淘帖,喜欢就点“订阅”吧

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-9-9 14:31:13 | 显示全部楼层
已订阅。支持木木。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-28 20:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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