小学课后服务 Python少儿编程 提高篇:5-列表与字典综合应用 课件 (15张PPT)

资源下载
  1. 二一教育资源

小学课后服务 Python少儿编程 提高篇:5-列表与字典综合应用 课件 (15张PPT)

资源简介

(共15张PPT)
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
少儿编程课
列表与字典综合运用
这一节我们进行list和dict的综合运用,来做英雄排行榜的数据部分和后台逻辑
下面开始做一个英雄选择器的后台逻辑,来综合使用下list和dict
我们用list和dict来存储英雄的数据,以小黑这个人物为例:
他有4个技能,可以存成list
1
小黑的基本信息,如姓名、生命值、攻击力防御力等,可以定义普通变量表示
2
skills = ['一黑横空', '黑渡迷津', '黑之纵横', '黑下乾坤']
name = ‘小黑' # 姓名
hp = 1000 # 血量
mp = 800 # 魔法量
ap = 45 # 攻击力
dp = 20 # 防御力
如果用一个dict表示小黑,也即既有小黑的基本信息,又有小黑的技能列表,可以这样做:
3
hero = {
'name': ‘小黑',
'hp': 1000,
'mp': 800,
'ap': 45,
'dp': 20,
'skills': ['一黑横空', '黑渡迷津', '黑之纵横', '黑下乾坤'],
}
这就是将list作为dict的元素了。
定义好一个英雄之后,我们可以依次类推定义多个人的信息
定义多个人的信息
1
hero1 = {
'name': '小黑',
'hp': 1000,
'mp': 800,
'ap': 45,
'dp': 20,
'skills': ['一黑横空', '黑渡迷津', '黑之纵横', '黑下乾坤'],
}
hero2 = {
'name': '黑小妹',
'hp': 800,
'mp': 1000,
'ap': 50,
'dp': 18,
'skills': ['貂蝉拜月', '西施捧心', '昭君出塞', '贵妃醉酒'],
}
hero_list = [hero1, hero2]
hero_list = [{
'name': '小黑',
'hp': 1000,
'mp': 800,
'ap': 45,
'dp': 20,
'skills': ['一黑横空', '黑渡迷津', '黑之纵横', '黑下乾坤'],
}, {
'name': '黑小妹',
'hp': 800,
'mp': 1000,
'ap': 50,
'dp': 18,
'skills': ['貂蝉拜月', '西施捧心', '昭君出塞', '贵妃醉酒'],
}]
或者直接一步到位,省去定义变量的麻烦:
2
为了将英雄归到对应的分类中去,我们还要指定英雄的角色属性信息
单个角色的全部信息如下
1
全部英雄的信息如下:
2
{
'name': '小黑',
'hp': 1000,
'mp': 800,
'ap': 45,
'dp': 20,
'skills': ['一黑横空', '黑渡迷津', '黑之纵横', '黑下乾坤'],
'is_warrior': True,
'is_mage': False,
'is_hunter': False
}
hero_list = [
{'name': '小黑', 'hp': 1000, 'mp': 800, 'ap': 45, 'dp': 20, 'skills': ['一黑横空', '黑渡迷津', '黑之纵横', '黑下乾坤'],
'is_warrior': True, 'is_mage': False, 'is_hunter': False, },
{'name': '黑小妹', 'hp': 1200, 'mp': 700, 'ap': 35, 'dp': 21, 'skills': ['貂蝉拜月', '西施捧心', '昭君出塞', '贵妃醉酒'],
'is_warrior': True, 'is_mage': True, 'is_hunter': False, },
{'name': '黑大元', 'hp': 1100, 'mp': 600, 'ap': 38, 'dp': 17, 'skills': ['千里横行', '寒刀断水', '狂龙破日', '天地无情'],
'is_warrior': True, 'is_mage': False, 'is_hunter': True, },
{'name': '黑当归', 'hp': 900, 'mp': 1100, 'ap': 44, 'dp': 17, 'skills': ['流水行云', '披云戴月', '翻云覆雨', '排山倒海'],
'is_warrior': False, 'is_mage': True, 'is_hunter': False, },
{'name': '黑鱼儿', 'hp': 1000, 'mp': 1000, 'ap': 42, 'dp': 23, 'skills': ['小楫轻舟', '扁舟一叶', '大江似练', '沧波万顷'],
'is_warrior': False, 'is_mage': False, 'is_hunter': True, }
]
数据准备好了,接下来就可以编写对应的功能了
查找所有英雄的姓名
1
for x in hero_list:
print(x.get('name'))
练习
Exercises


线





练习:查找所有战士的名字
for x in hero_list:
if x.get('is_warrior'):
print(x.get('name'))
数据准备好了,接下来就可以编写对应的功能了
获取所有战士的技能列表
2
for x in hero_list:
if x.get('is_warrior'):
print('*' * 10)
print(x.get('name') + '的技能有:')
for skill in x['skills']:
print(skill)
最后我们再来实现一个模糊查询的功能
也就是判断一个字符串中是否包含另一个字符串,可以这样:
1
也可以这样:
3
name = '黑大元'
if '大' in name:
print('匹配')
name = '黑大元'
if name.find('大') != -1:
print('匹配')
练习
Exercises


线





使用上两种方法中的任意一种,为英雄选择器
提供模糊查询功能吧
总结
Summary
list的格式,元素和下标,list中的增、插入、删、改、查等方法

dict的格式,key和value,dict中的增、删、改、查等方法

list和dict的嵌套使用、双重for循环的执行流程理解

字符串是否在另一个字符串中的判断

作业
Homework
请计算英雄选择器中五种英雄的平均血量,注意避免“hard coding”
Thanks!

展开更多......

收起↑

资源预览