查看原文
其他

基于王者荣耀的Python3入门文档(2)

2018-01-08 郑开州 Python爱好者社区

作者:郑开州

知性而淫荡,神秘又开放


写在前面


1.前文传送门:基于王者荣耀的Python3入门文档


2.基于Python3,运行环境为jupyter

代码可以复制,请将输入法切换到英文状态再将代码复制粘贴


3.本节主要内容

if条件语句:条件判断的多种类型

字典:构造字典,增删改查,字典遍历,字典嵌套

 

一、 if条件语句


1、 一个最简单的if语句


王者荣耀中的英雄有很多,但是李白是嘴炮最厉害的一个!可以使用if条件语句,判断英雄列表中的每个元素是不是李白。

heroes=["安其拉","李白","杨戬","貂蝉","孙悟空"] for hero in heroes:    if hero=="李白":      #一个等号是赋值,两个等号是判断        print("你选的英雄超级厉害的!") #只有李白才是superstar    else:        print("你选的英雄一般般厉害!")


注意:缩进一定要工整,循环和条件语句后面都有冒号


2、 if条件判断的内容分类


if条件判断的内容有不同的类型,上面的例子中,我们要判断英雄是不是李白,这是条件判断中的一种(文本),下面我们来详细的了解一下if后面的条件判断类型。


① 文本内容是否相同

hero = "libai" #小写的李白 if hero=="libai":  #小写的李白    print("您选择的英雄是超级大嘴炮:李白!") if hero=="LIBAI":  #大写的李白    print("您选择的英雄是名字大写的超级大嘴炮:李白!")


注意:检验文本内容是否相同的时候,严格区分大小写。并且文本判断的时候用的是两个等号,对比以下



注意:文本内容判断的时候使用一个等号,会出现错误


② 文本内容是否不相同


10个后羿7个傻、8个呆、9个菜,还有一个在王者段位,鱼塘里面遇不到。所以,鱼塘判断英雄不是后羿,就赢了一大半。

hero = "老夫子" if hero !="后羿":  #不等于    print("恭喜,这局对战已经赢了一大半!")


③ 比较数字


为了避免小学生沉迷农药,无法自拔,限定年龄小于12岁的玩家每天只能玩1个小时。

age=11 if age <= 12:    print("尊敬的小玩家,您每日的游戏时间只有1小时!")


④ 多个条件并列


鉴于防沉迷机制,刘翠花和王二狗组队玩一天的需要双方的年龄都大于12岁,这里就涉及到多个条件的并列判断。

liucuihua=18 #翠花永远18岁 wangergou=22 if (liucuihua > 12 and wangergou >12):    print("恭喜刘翠花和王二狗能够组队玩一天!")


注意:and 与;or 或


⑤ 列表中是否包含特定值


我们来看一下队伍列表中有没有后羿,没有就赢了一半,有就踢掉。

heroes=["安其拉","李白","杨戬","貂蝉","后羿"] hero="后羿" if hero in heroes:    print("队伍中有后羿,赶紧踢掉他。") else:    print("后羿不在队伍中,能赢!")


注意:if和else的搭配,相当于Excel中的if函数


二、 字典


1、 一个简单的英雄字典


字典可以理解为名片,由多种属性及其对应值构成。我们来创建一个李白的字典。

libai={"姓名":"李白","性别":"男"} print(libai)


注意:字典的标识符是大括号{},大括号内的键值对应关系用冒号表示,键值对之间用逗号分隔


2、 向字典中添加内容


我们创建的李白的字典太苍白无力了,我们往这个字典里面加入李白的名句让他变得丰富。

libai={"姓名":"李白","性别":"男"} print(libai) libai["名句"]="努力有用的话还要天才干甚?" print(libai)


3、 修改字典中的内容


假如某天考古发现李白其实是萌萌哒的女孩子,我们需要对李白的性别属性进行修改。

libai={"姓名":"李白","性别":"男"} print(libai) libai["性别"]="女" #修改性别对应的值 print(libai)


4、 删除字典中的内容


李白是男是女我们都爱,我们爱的是嘴炮,不是性别。所以性别这个属性不重要,我们删除它。(总感觉哪里不对劲)

libai={"姓名":"李白","性别":"男"} print(libai) del libai["性别"]     #删除一个键值对,只需要指定键就可以了 print(libai)

 

三、 字典的进一步操作


1、遍历字典


现在开一局王者荣耀,我们的五人投小队及其选的英雄也是可以组成一个字典的。玩家是键,英雄是值。

#五人投小分队组成的送分队伍。 songfen={    "马花藤":"安其拉",    "天善梁总":"孙悟空",    "酸菜馆子刘翠花":"貂蝉",    "村口铁匠王二狗":"吕布",    "小菜鸡郑开州":"后羿"} print(songfen)

 

① 遍历字典中的所有键(玩家名称)

#五人投小分队组成的送分队伍。玩家是键,英雄是值 songfen={    "马花藤":"安其拉",    "天善梁总":"孙悟空",    "酸菜馆子刘翠花":"貂蝉",    "村口铁匠王二狗":"吕布",    "小菜鸡郑开州":"后羿"} for key in songfen.keys():  #取出字典中的玩家名称    print(key)


注意:字典中的键通常使用特殊字符key来表示,并且取键的方法为字典名称.keys()


② 遍历字典中的所有值(英雄名称)

#五人投小分队组成的送分队伍。玩家是键,英雄是值 songfen={    "马花藤":"安其拉",    "天善梁总":"孙悟空",    "酸菜馆子刘翠花":"貂蝉",    "村口铁匠王二狗":"吕布",    "小菜鸡郑开州":"后羿"} for value in songfen.values():  #取出字典中的英雄名称    print(value)


注意:字典中的值通常使用特殊字符value来表示,并且取值的方法为字典名称.values()


③ 遍历字典中的所有键值对

#五人投小分队组成的送分队伍。玩家是键,英雄是值 songfen={    "马花藤":"安其拉",    "天善梁总":"孙悟空",    "酸菜馆子刘翠花":"貂蝉",    "村口铁匠王二狗":"吕布",    "小菜鸡郑开州":"后羿"} for key,value in songfen.items():  #取出字典中的玩家名称    print(key,value)


注意:字典中的键值对需要使用两个参数来获取,并且使用逗号分隔,获取键值对的方


法为字典名称.items()。打印的时候可以只打印一个参数。


2、字典嵌套


① 一个键对应多个值


我们刚才的五人小队,还有另外一个更加常规的方法。可以做成以下excel表格中的格式。这个时候我们的第一个键(玩家名称)对应的值就有5个,第二个键(所选英雄)对应的值也有5个。



一个键对应多个值,我们可以做一个嵌套列表的字典:

#五人投小分队组成的送分队伍 songfen={    "玩家名称":["马花藤","天善梁总","酸菜馆子刘翠花","村口铁匠王二狗","小菜鸡郑开州"],    "所选英雄":["安其拉","孙悟空","貂蝉","吕布","后羿"]    } songfen


注意: 嵌套列表的字段最后还是一个字典,最外层是大括号。将来使用pandas包经常会使用这种格式。


② 把几个字典放在一个列表里面


先前我们做了一个李白的名片,接下来我们再来多做几个,并存在一个列表里面。

libai={"姓名":"李白","性别":"男"} diaochan={"姓名":"貂蝉","性别":"女"} direnjie={"姓名":"狄仁杰","性别":"男"} heroes=[libai,diaochan,direnjie] print(heroes)


③ 嵌套字典的字典


这部分内容放在后面讲pandas的时候再讲,入门有点太难了。


四、 总结


if条件语句的if-else结构,if后接的条件判断的几种类型这两部分很重要;

字典的增删改查、遍历、嵌套的三部分内容很重要。

大家发现错误的地方,或者大家有建议和批评请联系开州:

kaizhou_0320@163.com

最后,感谢阅读!

Python爱好者社区历史文章大合集

Python爱好者社区历史文章列表(每周append更新一次)

福利:文末扫码立刻关注公众号,“Python爱好者社区”,开始学习Python课程:

关注后在公众号内回复“课程”即可获取:

小编的Python入门视频课程!!!

崔老师爬虫实战案例免费学习视频。

丘老师数据科学入门指导免费学习视频。

陈老师数据分析报告制作免费学习视频。

玩转大数据分析!Spark2.X+Python 精华实战课程免费学习视频。

丘老师Python网络爬虫实战免费学习视频。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存