美文网首页
Python智慧编程——第4讲 Python更多数据存储类型

Python智慧编程——第4讲 Python更多数据存储类型

作者: 国防服役 | 来源:发表于2019-12-21 18:31 被阅读0次

    第 4 课 Python 更多数据存储类型

    4.1 元组——Tuples

    元组就像是一个使用小括号的列表。

    4.1.1 元组的创建

    学会了列表的创建之后,元组创建方法非常的简单。比如下面,我们创建一个汽车品牌名称的元组,然后打印输出来。

    汽车图片

    输入代码

    # 在这里写上你的代码:-)

    carTuples = ('奔驰', '奥迪', '法拉第', '吉利')

    print(carTuples)

    运行结果

    运行结果

    同样,像列表那样,我们也可以通过索引的方式,来对已创建的元组中,查找汽车品牌的名称。


    输入代码

    # 在这里写上你的代码:-)

    carTuples = ('奔驰', '奥迪', '法拉第', '吉利')

    print(carTuples[2])

    运行结果

    运行结果

    这里,我们把变量carTuples定义为字符串奔奥迪、法拉第、吉利。 然后, 就像用列表一样,我们把元组中索引位置为2的元素打印出来: print(carTuples [2])。

    4.1.2 元组中元素的操作

    我们可以像列表那样使用“+”号,来对元组进行拼接相连的操作:


    输入代码

    # 在这里写上你的代码:-)

    carTuples1 = ('奔驰', '奥迪', '法拉第', '吉利')

    carTuples2 = ('VOLVO', 'JAC')

    carTuples = carTuples1 + carTuples2

    print(carTuples)

    运行结果

    运行结果

    元组与列表的主要区别在于元组一旦创建就不能再做改动了。例如,我们想要把元组carTuples中的第一个字符串替换成 “大众”的话,我们会得到一条错误信息:


    输入代码

    # 在这里写上你的代码:-)

    carTuples = ('奔驰', '奥迪', '法拉第', '吉利')

    carTuples[0] = '大众'

    print(carTuples)

    运行结果

    运行结果

    那为什么还要用元组而不用列表呢?主要是因为有时候对一些你知道永远不会改变的事情还是很有用的。如果你创建一个由两个元素组成的元组,它里面将一直就放着这两个元素。

    4.2 字典——Maps

    4.2.1 字典是一组组的键与值

    在Python里,像列表和元组一样,字典(diet,是dictionary的缩写。也叫map,映射)也是一堆东西的组合。字典与列表或元组不同的地方在于,字典中的每个元素都有一个键(key) 和一个对应的值(value)。字典正是由这一个个键值对(你也可以理解为,每一个数值的前面,都会有一个唯一的身份证号码)组成的数据集合。

    体育图片

    例如,假设我们有一个列表,上面是一些人和他们最喜爱的运动。我们可以把这个信息放到Python 的列表中,把名字在前,把他们最喜爱的运动在后:


    输入代码

    # 在这里写上你的代码:-)

    sports = [

                        '姚明,篮球',

                        '邓亚萍,乒乓球',

                        '林丹,羽毛球',

                        '丁俊晖,斯诺克'

                ]

    print(sports[1])

    运行结果

    运行结果

    如果我问你丁俊晖最擅长的体育运动是什么,你可能要浏览这个列表才能找到答案:斯诺克。 但是如果列表中有 100 个(或者更多)人呢?

     现在,如果我们把同样的信息放到字典中,把人名作为键,把他们喜爱的运动作为值,那么Python代码像这样来写:


    输入代码

    # 在这里写上你的代码:-)

    sports = {

                        '姚明' : '篮球',

                        '邓亚萍' : '乒乓球',

                        '林丹' : '羽毛球',

                        '丁俊晖' : '斯诺克'

                }

    print(sports['丁俊晖'])

    运行结果

    运行结果

    我们用冒号把每个键和它的值分开,每个键和值都分别用单引号括起来。还要注意字典中的所有元素都是用大括号({})括起来的,而不是圆括号或者方括号。这样做的结果就得到了一个映射表(每个键对应一个特定的值),我们同样也可以用一张表示意出来:

    Key                          Value

    姚明                        篮球

    邓亚萍                    乒乓球

    林丹                        羽毛球

    丁俊晖                    斯诺克

    想要删除字典中的值,就要用到它的键。下面是如何删除的例子


    输入代码

    # 在这里写上你的代码:-)

    sports = {

                        '姚明' : '篮球',

                        '邓亚萍' : '乒乓球',

                        '林丹' : '羽毛球',

                        '丁俊晖' : '斯诺克'

                }

    del sports['林丹']

    print(sports)

    运行结果

    运行结果

    要替换字典中的值, 也要用到它的键:


    输入代码

    # 在这里写上你的代码:-)

    sports = {

                        '姚明' : '篮球',

                        '邓亚萍' : '乒乓球',

                        '林丹' : '羽毛球',

                        '丁俊晖' : '斯诺克'

                }

    sports['丁俊晖'] = '台球'

    print(sports)

    运行结果

    运行结果

    我们用丁俊晖作为键,把他最喜爱的运动从斯诺克改成了台球。

    如你所见,使用字典与使用列表和元组类似,只是你不能用“+”号运算符来把两个字典连在一起。如果你试一下的话就会看到一条错误信息:


    输入代码

    # 在这里写上你的代码:-)

    sports1 = {

                        '姚明' : '篮球',

                        '邓亚萍' : '乒乓球',

                        '林丹' : '羽毛球',

                        '丁俊晖' : '斯诺克'

                }

    sports2 = {

                        '李娜' : '网球',

                        '郭晶晶' : '跳水'

                }

    sports = sports1 + sports2

    print(sports)

    运行结果

    运行结果


    4.3 水浒英雄代号查询——程序设计

    武松打虎图片

    喜欢看水浒传的人都知道,梁山泊上的108将都是有顺序的,如果想记清楚每一位英雄的名称以及号码顺序是比较难的一件事,那么现在我们来使用所学的知识来进行一场英雄大点兵的Python程序,我们不仅可以做到知道每一位英雄的名称以及号码顺序,我们还可以查询这名英雄在梁山泊上的职务信息,下面我们一起来试一下吧!


    输入代码

    # 在这里写上你的代码:-)

    heroMap = {

                        '宋江' : '天魁星及时雨--总兵都头领',

                        '卢俊义' : '天罡星玉麒麟',

                        '吴用' : '天机星智多星--掌管机密军师',

                        '公孙胜' : '天闲星入云龙',

                        '关胜' : '天勇星大刀--马军五虎将、左军大将',

                        '林冲' : '天雄星豹子头--马军五虎将、右军大将',

                        '秦明' : '天猛星霹雳火--马军五虎将、先锋大将',

                        '呼延灼' : '天威星双鞭--马军五虎将、合后大将',

                        '花荣' : '天英星小李广--马军八骠骑、兼先锋使',

                        '柴进' : '天贵星小旋风--掌管钱粮头领',

                        '李应' : '天富星扑天雕',

                        '朱仝' : '天满星美髯公--马军八骠骑、兼先锋使',

                        '鲁智深' : '天孤星花和尚--步军头领',

                        '武松' : '天伤星行者',

                        '董平' : '天立星/天健星双枪将--马军五虎将、虎军大将',

                        '张清' : '天捷星/天玄星没羽箭--骠骑、兼先锋使',

                        '杨志' : '天暗星青面兽',

                        '徐宁' : '天祐星/天佑星金枪手'

                }

    print(heroMap['武松'])

    运行结果

    运行结果

    以上没有列举全部的梁山泊英雄信息,如果你想继续完善我们这个信息库,可以去图书馆或者网上查找所有的英雄信息,来把剩余的信息录入Python程序中,尝试着自己来编写一下吧!

    4.4 智能故事大王——程序设计

    故事机图片

    在很多无聊的晚上,多么希望有一个能够陪自己小机器人,能抱着它玩耍,也能听它讲故事,偷偷告诉你,经过这几节课的学习,我们现在可以编写出讲故事的程序了。现在我们来一起做一个智能讲故事的Python程序吧!然后在Mu上运行,把自己设计程序故事讲给我们的伙伴听。


    输入代码

    # 在这里写上你的代码:-)

    import random

    storyTime = ('秦朝', '昨天', '今天', '上个世纪末', '风黑月高的晚上', '明朝')

    storyPerson1 = ('阿里', '小强', '小莫', '阿毛', '旺财', '阿凯', '小鞋匠')

    storyPerson2 = ('阿美', '嘟嘟', '小龙', '阿飞', '秋香', '越哥', '老铁匠')

    storyPlace = ('菜市口', '学校', '北极', '洗手间', '游泳池', '被窝', '天空')

    storyMatter = ('锻炼身体', '吃羊肉火锅', '唱歌', '洗澡', '侃大山', '战斗')

    story = '故事发生在' + random.choice(storyTime) + ''

    story = story + random.choice(storyPerson1) + ''

    story = story + random.choice(storyPerson2) + ''

    story = story + '' + random.choice(storyPlace) + ''

    story = story + random.choice(storyMatter) + ''

    print(story)

    运行结果

    运行结果

    在上述的Python程序中,我们使用random(随机数)模块的choice()函数,来从我们创建的时间、人物、地点与事件字符串元组中随机选择字符,使用字符串拼接的方式为我们呈现故事的讲述。

    读者朋友您们好,这是作者第一次写文章,难免经验有些不足!

    如果您有什么意见和建议欢迎留言!!!

    如果喜欢文章,希望能得到您的点赞鼓励!

    国防服役——未完待续

    相关文章

      网友评论

          本文标题:Python智慧编程——第4讲 Python更多数据存储类型

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