美文网首页Python世界的星辰大海
真正地努力就是三个字:“不放弃”——跟我学Python从小白到入

真正地努力就是三个字:“不放弃”——跟我学Python从小白到入

作者: 且听风吟闲翻书 | 来源:发表于2017-10-14 00:05 被阅读47次

    继续进行我的《Python从入门到实践》的读书笔记,这也是适合初学者的学习教程。

    我的手绘题图-别离的深秋 请点击以下蓝色字链接,进入代码编程页面,输入文章中的代码进行练习,点击运行就可以查看运行结果。
    注:文章中的代码均可以直接复制粘贴再运行,建议第一遍复制复制粘贴运行,然后再对照代码手动输入练习,更加深印象。
    Python在线编程页面1
    Python在线编程页面2
    祝你在Python的平行异世界玩得开心!

    回忆一下,我们前次学习了第六章前四节。


    图片来自我的自制思维导图

    给字典赋值,与其他变量赋值略有不同,字典中的值是一对一对的数据,每对数据都包含“键”和"值“两个方面,每对数据之间用逗号分隔,键和值之间用冒号联系。
    回忆一下前一次课给字典赋值,并显示出字典中的键值对的取值,代码如下:

    x={"name":"robot","color":"yellow","point":5}
    print(x)
    

    以上方框中的代码可以直接复制粘贴到Python在线编程页面,点击运行得到结果。
    复习一下添加键-值对,接上面代码书写如下:

    x['level']=1
    print(x)
    
    给字典赋值、添加键-值对

    复习一下修改键-值对,接上面代码书写如下:

    x['point']=666
    print(x)
    
    修改键-值对

    复习一下删除键-值对,接上面代码书写如下:

    x={"name":"robot","color":"yellow","point":5}
    del x['name']
    print(x)
    
    给字典赋值、添加键-值对、修改键-值对、删除键-值对

    复习一下遍历所有键-值对,引用字典时要注意格式为:字典名.items()

    要编写遍历所有键-值对的for循环,要申明两个变量,分别用于存储字典中的键和值

    接上面代码书写如下:

    for m,n in x.items():
        print(m)
        print(n)
    
    遍历所有键-值对

    复习一下遍历所有键,引用字典时要注意格式为:字典名.keys()
    接上面代码书写如下:

    for m in x.keys():
        print(m)
    

    要按顺序遍历所有键,引用字典时要注意格式为:sorted(字典名.keys())
    接上面代码书写如下:

    for m in sorted(x.keys()):
        print(m)
    

    复习一下遍历所有值,引用字典时要注意格式为:字典名.values()
    接上面代码书写如下:

    for m in x.values():
        print(m)
    

    要按顺序遍历所有值,引用字典时要注意格式为: sorted(字典名.values())
    接上面代码书写如下:

    for m in sorted(x.values()):
        print(m)
    

    遍历所有值时,若想剔除掉重复值,只显示不重复的值,则在引用字典时要注意格式为: set(字典名.values())
    新增加两个重复值,再接上面代码书写如下:

    x['sex']='yellow'
    x['number']=666
    for m in x.values():
        print(m)
    for m in set(x.values()):
        print(m)
    

    复习一下字典列表,代码如下:

    a0={"color":"yellow","point":5}
    a1={"color":"green","point":10}
    a2={"color":"red","point":15}
    y=[a0,a1,a2]
    print(y)
    
    字典列表

    也可以直接赋值,不使用中间变量,运行结果完全相同

    当列表中元素的内容较多时,可使用以下分行书写的方法
    y=[
         {"color":"yellow","point":5},
         {"color":"green","point":10},
         {"color":"red","point":15}
       ]
    print(y)
    

    复习一下6.4.2在字典中存储列表,每当需要在字典中将一个键关联到多个值时,就可以在字典中嵌套一个列表,代码如下:

    x={'a':1,'b':[1,2,3,4,5]}
    print(x['a'])
    for y in x['b']:
         print(y)
    

    在字典中嵌套一个列表

    今天我们开始学习第六章的最后一个内容,6.4.3在字典中存储字典


    第四节内容思维导图

    在字典中存储字典,在实际代码中经常用到。
    例如:在网站中,有很多个用户,每个用户都有自己的一组相关信息;
    还有,在学生信息管理系统中,有多名学生,每名学生对应一组个人信息。
    以上这些情况,就可以使用在字典中存储字典,来轻松进行数据的管理。
    代码如下:

    # -*- coding: UTF-8 -*-
    users={'亚瑟':{
        'first':'zhang',
        'last':'san',
        'location':'Beijing',
        },
           '伊丽莎白':{
        'first':'li',
        'last':'Si', 
         'location':'hubei',
         },
       }
    for x,y in users.items():
        print('昵称:'+x)
        fullname = y['first']+""+y['last']
        location=y['location']
        print('真实姓名:'+fullname.title())
        print('籍贯:'+location.title())
    

    运行结果如下图右边窗口所示:

    截图04.png 详细解释一下以上语句的作用,我们首先定义了一个名为users的字典,其中包含两个键,即用户名是亚瑟和伊丽莎白,其中每个键相关联的值都是一个字典,其中包含用户的姓名和籍贯。 在字典中存储字典

    for语句遍历字典,设置x和y两个变量,分别用来存储键的内容和值的内容,然后显示键和值的内容。

    需要注意的是,虽然Python没有要求,但我们设计时保证用户的字典结构都相同,可以使嵌套的字典处理起来更容易。

    如果用户的字典结构都不相同,for循环的代码将会更复杂。
    今天的新课内容不多,但是初接触字典里面的字典感觉有点烧脑。
    下面是脑洞大开时间,请对照书中的练习来试试自己第六章掌握得怎么样吧,如果所有题目都能做出来,说明真的理解和掌握了,如果不能,那就再看一遍书和我的简易教程吧,书读百遍就能多看懂一点,这是真理没错的。

    动手试一试

    6-7 人:在为完成练习6-1而编写的程序中,再创建两个表示人的字典,然后将这三个字典都存储在一个名为people的列表中。遍历这个列表,将其中每个人的所有信息都打印出来。
    6-8 宠物:创建多个字典,对于每个字典,都使用一个宠物的名称来给它命名;在每个字典中,包含宠物的类型及其主人的名字。将这些字典存储在一个名为pets的列表中,再遍历该列表,并将宠物的所有信息都打印出来。
    6-9 喜欢的地方:创建一个名为favorite_places的字典。在这个字典中,将三个人的名字用作键;对于其中的每个人,都存储他喜欢的1~3个地方。为让这个练习更有趣些,可让一些朋友指出他们喜欢的几个地方。遍历这个字典,并将其中每个人的名字及其喜欢的地方打印出来。
    6-10 喜欢的数字:修改为完成练习6-2而编写的程序,让每个人都可以有多个喜欢的数字,然后将每个人的名字及其喜欢的数字打印出来。
    6-11 城市:创建一个名为cities的字典,其中将三个城市名用作键;对于每座城市,都创建一个字典,并在其中包含该城市所属的国家、人口约数以及一个有关该城市的事实。在表示每座城市的字典中,应包含country、population和fact等键。将每座城市的名字以及有关它们的信息都打印出来。
    6-12 扩展:本章的示例足够复杂,可以以很多方式进行扩展了。请对本章的一个示例进行扩展:添加键和值、调整程序要解决的问题或改进输出的格式。

    6.5 小结

    本章我们学习了,以下内容:

    第六章

    在下一章中,我们将学习while循环以及如何从用户那里获取输入。
    正如书中所说“这是激动人心的一章,让你知道如何将程序变成交互性的——能够对用户输入作出响应。”
    对于我这种喜欢折腾的人来说,一直都想要自己输入一些语句内容来进行好玩的互动,终于可以大玩特玩了,我一直想要把实体书的作者的第一个程序写出来玩玩的,这下子可以实现了,撒花!
    20171013初稿开写
    2017101418:16结稿
    正文到此处结束,谢谢你的时间和关注:)


    话唠的例行PS,与学习关系不大,可以不看,只为记录写文章的状态:
    1、一直不清楚,为什么不能添加中文的注释,一加就报错,然后就放弃了,今天。。。。终于开窍了,原来python只支持ASCII码,如果要加ASCII以外的字符,就要在整个代码的最前面加上一句(暂时我还不知道是啥作用的)语句就行了,此语句一定要添加在源代码的第一行,代码如下:

    # -*- coding: UTF-8 -*-     
    

    或者

    #coding=utf-8
    
    添加中文的注释
    参考文章:关于Python报错:SyntaxError: Non-ASCII character '\xe5' in file的解决方法
    链接:https://my.oschina.net/panjavay/blog/142682
    2、交稿时间一拖再拖,这是很少见的过了五点才完成文章的写作的状况,在电脑前坐了一天,一直在东搞搞西搞搞,什么都折腾完了,就是文章还没有写一个字,这样的状况,希望下次有所改善。这次文章是从昨天开始写的,昨天花了两个小时,今天又花了一个半小时,主要卡在最后那个程序,不知道为什么,怎么调试都不正确,老是出错,后来才发现,在字典内嵌套的字典里,不能使用汉字,哪怕全部代码使用了的UTF-8申明也不行,好吧,改变能改变的,接受不能改变的,这就是聪明人的做法,只好把嵌套的字典全部改为了英文字母,就OK了。
    3.总结一下,内容不熟练,新旅程上会出现N多不可预期的问题,所以预留的写文章的时间,不应该包括进行新知识学习的时间,仔细想想我自己最喜欢的那一篇《降临》电影和小说的结合写的文章,阅读和看电影都是在写文章之前就全部完成了的,所以感觉写起来会很顺利,效果也很好,记住,下次提前先看书,再写文章。
    2017101418:16
    2017101418:23

    相关文章

      网友评论

        本文标题:真正地努力就是三个字:“不放弃”——跟我学Python从小白到入

        本文链接:https://www.haomeiwen.com/subject/ardtuxtx.html