Day03 八戒大战后裔
猪八戒看守南天门时,有一天看到了后裔。猪八戒想起后裔对嫦娥姐姐做的事情,感到十分生气。于是,猪八戒就追打起后裔。后裔被这突然起来的猪吓到了,于是慌张逃跑,最后后来到了高台上。
后裔首先看到一个一块很大的表悬在半空中,表的一端系着一个气球,上面写着表的名字(列表(list)特点:有序的(有索引、定义和显示的顺序是一致的)、可变的(既可以改变元素的内容也可以自动(扩缩)容)、可重复的、可以存储任何数据类型的元素)。表上站列着各种各样的人,有阿拉伯人,有欧美人,还有肉丸子、字典、大饼、蒲团在队列里。有的人还长得一模一样。于是,后裔就假装若无其事的躲到了一个蒲团上(append(obj):将obj元素追加到列表的末尾)。猪八戒不就也赶到,他一眼就发现后裔藏在队列里,所以,八戒叫来了飞毯,飞毯很快就根据表下的数字编号锁定了后裔的位置(1).获取元素列表名配合下标获取 --> 例如:lt[0],lt[-1]),并来到了后裔上方,将后裔吸到毯上,并留下了一个阿拉伯人(2).设置元素(和str有区别)列表名配合下标 = … --> 例如:lt[4] = “武大郎”)。后裔十分惊讶,但很快就逃脱,并且用法术克隆出好几条大表(对于*操作而言:将列表中的元素重复出现n次,以新的列表返回),并用十字架连接在一起(对于+操作而言:将两个列表对象中的元素都组合起来以一个新的列表返回),向猪八戒宣战。猪八戒一看对方阵势强大,于是计上心来,他派出一个小猪拿着把笤帚,悄悄来到后裔的队列最后面,然后向前一扫,队列瞬间消失,只留下一个空表悬在半空中(clear():清空列表,元素没了,列表对象还在)。后裔一看,不仅怒火中山,拿起一把大砍刀就向猪八戒的队列砍去,有的人被大刀直接砍消失了,有的表都被大刀砍碎了(del关键字配合列表对象/元素使用.目的:回收列表对象,回收其中的元素内容)。猪八戒一看后裔失了心智,于是赶紧派更大的飞毯去后裔的队列里截取士兵(列表的切片操作:格式和特点和str一模一样…)。后裔一看情况不妙,慌忙逃窜,并向猪八戒下战书说下午再战。
八戒打赢了后裔,开心的吃起来牛肉丸串。但是他同时感到担心,打败后裔的队伍是临时拼凑的,人心涣散,说变就变,没什么战斗力,必须要建立一支自己的队伍。八戒看着手中的牛肉串,恍然大悟。他把牛肉丸串变得像表一样大,牛肉丸上同样站着士兵,所不同的是,牛肉丸上的士兵意志坚定,不会改变(元组特点:有序的(有索引、定义和显示的顺序是一致的)、不可变的(和str一样理解)、可重复的、可以存储任何数据类型的元素),且不能从队伍最后面加入进去。笤帚对他们根本不起作用(思考:元祖有没有类似于列表的append或者clear函数?没有,因为append和clear这类函数改变的都是容器对象内部的元素内容,这和不可变所冲突)。而且,他们非常团结,大刀只能砍碎牛肉丸,不能砍倒他们一个(del关键字配合元祖对象使用.目的:回收整个元祖对象,但是无法回收其任何一个元素)。他们听飞毯和八戒的话。八戒发现有的丸子上只有一个士兵,就给他配了一条狗(元祖名 = (值1,)
【注意】:定义元祖并且只有一个元素,必须在元素后显示的加上一个逗号)。
有了自己的队伍,八戒喜出望外。但离真正强大还差一个智囊团。所以八戒掏出师傅给他的一部字典(字典特点:无序性(没有索引,通过键找值)、可变的数据类型(值可变、键不可变)),将其变大,然后网罗天下军师,把他们安排到字典上(字典的结构:键值对组合 --> key-value对象)。这些军师每个人都有自己的外号(键(key):唯一性(不可重复)、不可变的数据类型(例如:list就不能作为键)),且各不相同。如果有相同的外号,则后来的取而代之(在定义字典对象的时候如果出现了重复的键,保留键名的同时,将后者的值覆盖前面的值)。如果没有军师的名字,可以直接将其和他随从加进去(在添加新的键值对的过程中,如果原字典对象中没有此键,那么就将其键值对一并加入进去,称为一个元素dic2 = {“name”:“韩梅梅”,“age”:23,“height”:165.0,“name”:“李雷”} dic2[‘weight’] = 120)。他们还可以任意的挑选随从(值(value):没有任何要求,可以是任何类型的数据,甚至可以重复)。由于军师没什么战斗力,笤帚能一把把字典上的人打扫干净(clear():清空字典元素,保留空字典对象)。同样,大刀也能把军师砍死,把字典砍碎(和关键字del配合使用:目的:回收键值对组合,或者整个字典对象)。如果你要找某个军师(对于通过键查找值的情况可以分为以下两种方式来实现:),可以通过两种方法,一种是直接喊其外号(方式一:字典名[键名] 如果键不存在,报错;出现KeyError类型的异常),当然,可能会无人应答。还有一种是用一双大手将其捧出来,如果人不在的话,大手会告诉你为空(方式二:字典吗.get(键名) 如果键不存在,不会报错,会返回给程序一个None值;此方式比较安全/友好(更加好用))。
八戒整顿好字典阵营后,就开始吃大饼。有个军师就跑来告诉八戒说,当前我们队伍机动性较差,需要打造一支千变万化而又能协同配合的队伍。八戒看着手中的大饼(集合(set)
特点:无序性(没有索引,每一次显示的效果都不一样)、唯一性(不可重复)、 可变的、只能存放不可变的数据),顿时有了主意。他把大饼作为载体,士兵可以在大饼上随意走动,但是每名士兵都是唯一的(使用场景:在实际开发过程中,经常用于对数据进行去重(过滤))。大饼与大饼之间可以重合(&:取交集),可以联合(|:取并集),可以相减(-:取差集),可以先联合再减去重合部分(^:先取并集再舍弃交集部分)。但是,笤帚和大砍刀都能对其起作用(clear():清空集合,保留外壳 。和关键字del配合使用: 目的:回收集合元素,或者回收整个集合对象)。如果要开除某个士兵,可以通过在其下方锯一块小圆饼,该小圆饼就会将该士兵移走(思考:删除"貂蝉"这个数据,改这么做到?可以使用remove(obj)函数来实现…)。如果需要,大饼还可以转化成列表士兵(将集合转换为列表 --> 使用转换函数list())。
八戒放心的吃完午餐,静等下午后裔到来。午后时分,后裔带着大批队伍赶到。猪八戒镇定自若。可是,现在天庭颁布了新规定,单挑要走七个流程。第一个比赛项目是(算数运算符:符号:+ - * / %(取余、取模) //(取整) **(开方))算数,加减乘除,取余,取整,开方。八戒痛失开局。
第二个项目是比体重(比较运算符:符号:> >= < <= ==(全等) !=(不等于)。特点:比较运算的结果一定是布尔值(True/False)),看谁的大。八戒笑哈哈,扳回一局。
第三个项目是传授弟子武艺(赋值&混合赋值运算符:赋值运算符符号:= 混合赋值运算符符号:+= -= *= /= %=),让他们去比武。八戒输了。。。
第四个项目是比拼内人的逻辑能力(逻辑运算符 符号:and(逻辑与,并且,去交集) 总结:and操作,满足一假即假的特点,理解为:对False敏感;or(逻辑或,或者,取并集) or操作,满足一真即真的特点,理解为:对True敏感、not(逻辑非,取反)。特点:运算符两侧的数据类型一定是布尔型,结果也是布尔型)。八戒和后裔都没有媳妇,所以各从队伍中选了一名女警察来比拼。这一把八戒赢了。
第五个项目是选两名士兵到高台最下面的2列石阶上比赛。每名军士会变成几个小朋友,有男童,有女童,并排站列。然后与对方的小朋友队列进行比较。能按照规则计算得到最后结果的一方赢(位运算符:长处:是运算效率最高的运算符,直接是底层二进制的运算。符号:&(按位与)、|(按位或)、^(按位异或)、<<(左移)、>>(右移))。这一把,八戒痛失好局。
第六个项目为猜卧底游戏(成员运算符:作用:运用对于容器对象的判断,结果都是布尔值;判断某个元素是否存在于容器中。符号:in / not in)。因为第五个项目中,有的对方阵营的小朋友跑到了己方阵营,所以要把小卧底挑出来。八戒在猴哥身边呆了那么久,也学得了一些火眼金睛之法,于是一眼就挑中了对方的小卧底。这一把,八戒赢了
第七个项目是 让挑选出来的小卧底自己选择跟谁(三元/三目运算符:格式:表达式1 if 条件表达式 else 表达式2)。八戒和后裔各开出待遇,如果和小朋友提出的条件满足,就让可以领走小朋友。最终根据小朋友的数量决定胜负。
最终,八戒险胜后裔!撒花~
让python飞:形象理解python 列表、元组、字典、集合、运算符
最新推荐文章于 2024-11-13 17:26:18 发布
这篇博客以寓言故事的形式讲述了猪八戒与后裔利用编程概念如列表、元组、字典和集合进行较量的故事。八戒通过理解这些数据结构的特点,如列表的可变性、元组的不可变性、字典的键值对和集合的唯一性,成功战胜了后裔。故事中融入了各种编程运算符和操作,展现了编程思维在解决问题中的应用。
摘要由CSDN通过智能技术生成