当天知识点回顾
- 能够知道元组的定义格式(当元组中只有一个元素的时候,定义格式是: a = (18, ) )
- 能够知道元组和列表的区别( 元组定义使用小括号
()
, 列表使用中括号``[]``,元组中的元素不可修改不可删除) - 能够知道元组可以使用 for 循环遍历,可以使用下标来获取元组中的某一个元素
- 能够知道字典的定义格式
{key1:value1, key2:value2, .....}
- 能够知道字典在取值的时候是使用 key 来取值
dict[key]
- 能够知道字典在修改值的时候使用 key 来修改
dict[key] = new_value
- 能够知道字典新增数据
dict[key] = new_value
如果 key 存在表示修改数据,如果key不存在,表示新增数据 - 能够知道字典删除数据的方法
del dict['key'] 根据键删除对应的值, del dict 删除整个字典, dict.clear() 清空字典
- 能够知道查看字典的长度的方法
len()
, 取出所有key的列表keys()
,取出所有值的列表values()
,取出包含所有键值的元组的列表items()
- 能够使用for循环遍历字典
- 能够使用OrderDict创建一个有序的字典
- 能够知道 公共运算符的使用
+(合并) 、*(复制) 、in(是否存在)、not in(是否不存在)
- 能够使用 python内置函数
len() 计算元素个数、max() 计算容器内元素最大值、min() 计算容器内元素最小值、del()删除变量
随堂练习
- 创建一个元组,元组中只有一个元素
zhangsan
- 创建一个空字典 变量名为
info
- 接上一题,向字典 info 中添加新的键值对,保存如下信息:姓名是张三
- 接上一题,存在字典 info = {‘name’:‘张三’},怎样访问字典中元素 name 的值
- 接上一题,存在字典 info = {‘name’:‘张三’},怎样修改字典中的元素 ‘name’ 的值为 ‘李四’
- 接上一题,存在字典 info = {‘name’:‘李四’}, 删除元素 name
- 存在字典 info = {‘name’:‘张三’},清空整个字典
- 存在字典 info = {‘name’:‘张三’},删除整个字典
- 存在字典 info = {‘name’:‘张三’},怎样测量键值对个数
- 怎样测量键值对个数
- 怎样获取字典中的所有key
- 怎样获取字典中的所有value
- 怎样用for循环变量字典
- 现有列表
[22,44,66,1]
怎么获取列表中的最大值和最小值?
每日练习
题目1(实操)
题干
现有:typle1 = ("tom","kaisa","alisi","xiaoming","songshu")
我想获得“alisi”这个内容,你能否想到三种方法来做?
训练目标
元组按下标取值
元组的切片操作
元组的遍历操作
训练提示
- 在元祖里面,可以按照下标来取值
- 在元组里面,也是可以支持切片(与字符串类似)操作的
- 在元组里面,可以通过遍历取到每一个元素
参考方案
- 用元组取下标为2的值
- 可以利用切片从下标2开始取到下标3之前
- 可以用for循环来遍历所有的值,判断,如果有一个是alisi,那就输出
操作步骤
- typle1[2]
- typle1[2:3]
- for x in typle1先执行遍历,再进行判断
参考答案
typle1 = ("tom","kaisa","alisi","xiaoming","songshu")
# 获取“alisi
print(typle1[2])
print(typle1[2:3])
for name in typle1:
if "alisi" in name:
print("alisi")
题目2(实操题)
题干
有如下元组:
typle1 = ("tom","kaisa","alisi","xiaoming","songshu")
求出他的长度
训练目标
- 元组中内置方法len的使用
训练提示
- 对于这个题目要求,我们可以用到自己学过的知识,比如遍历这个元组,并且同时记录元素个数
- 但是对于我们强大的python来说,有没有什么最直接的方式呢?
参考方案
- 参考len用法
操作步骤
- 直接将元组放入len()中即可
参考答案
typle1 = ("tom","kaisa","alisi","xiaoming","songshu")
print(len(typle1))
题目3(实操题)
题干
现有列表:
name_list =["tom","kaisa","alisi",["xiaoming","songshu"]]
现在有个要求,将最外层的列表转换成元组存储,里面的小列表不变;
并且向小列表中添加一个元素“python”
训练目标
- 元组的强制转换
- 元组虽然是不可变类型,但是元组中的列表是可变的
训练提示
- 元组可以直接完成强制转换
- 什么是不可变类型?
- 元组作为不可变类型,那么元组中的元素如果是可变类型,那么可以在那个可变类型中添加吗?
参考方案
- 用tuple()这个方法
- 在元组的可变元组中,进行添加元素操作,如果报错那么就可以证明:如果不可变类型中的的元素是可变类型,那么可变类型以是可以完成增加元素的
操作步骤
- tuple(namelist)即可直接完成元组对列表的强制转换
- 对可变类型的某一元素进行直接增加,看是否会报错
参考答案
name_list =["tom","kaisa","alisi",["xiaoming","songshu"]]
name_dict = tuple(name_list)
print(name_dict)
name_dict[3].append('python')
print(name_dict)
题目4(实操题)
题干
现有字典dict1 = {'name':'python'}
,将键为'name'的值更改为'chuanzhi'
训练目标
字典中键值对的更改操作
训练提示
- 已经有了一个键值对,要对其进行更改值
- 此时只需要使用’='来执行赋值操作就行
参考方案
- 先指定要更改的键
- 使用“=”符号,给这个键赋值一个值为python的字符串
操作步骤
- dict1[“name”]来指定键的名称,用‘=’来赋值要更改的值(‘chuanzhi’)
参考答案
dict1 = {'name':'python'}
dict1['name'] = 'chuanzhi'
print(dict1)
拓展提高
题目5(实操题)
题干
现有字典dict1 = {'name':'chuanzhi','age':18}
要求:
1.删除age:18这个键值对
2.将整个字典里面的所有键值对,清空
训练目标
- 对于字典中删除的操作
- del的使用
- clear() 的使用
训练提示
- 有给定的字典,我们要怎么来完成删除操作?
- 在删除操作中,del与clear有怎么样的区别?
参考方案
- 删除一个指定的键值对,要用到del。
- 清空整个字典,要用到clear()方法。
操作步骤
- del 要删除的键
- 调用字典字典的clear的方法即可。
参考答案
dict1 = {'name':'chuanzhi','age':18}
del dict1['age']
dict1.clear()
题目6 (实操题)
题干
现有字典dict1 = {'name':'chuanzhi','age':18}
要求:
1.使用循环将字典中所有的键输出到屏幕上
2.使用循环将字典中所有的键输出到屏幕上
3.使用循环将字典中所有的键值对输出到屏幕上
输出方式:
name:chuanzhi
age:18
训练目标
- for循环的使用复习
- 学会如何获取字典所有的键
- 学会如何获取字典所有的值
- 学会如何获取字典所有的键值对
训练提示
- 用for来实现循环
- 用字典.keys()来获取所有的键
- 用字典.values()来获取所有的值
- 用字典.items()来获取所有的键值对
参考方案
用for来实现循环,让字典.keys()取到所有的键并控制循环次数,依次打印出每一个值,值与键值对同理;
操作步骤
- 让字典.keys()获取所有的值,将所有的值进行循环遍历,并依次print()
- 让字典.keys()获取所有的值,将所有的值进行循环遍历,并依次print()
- 让字典.items()获取所有的值,将所有的值进行循环遍历,并依次print(key, “:”, value)
参考答案
dict1 = {'name':'chuanzhi','age':18}
for key in dict1.keys():
print(key)
for value in dict1.values():
print(value)
for key,value in dict1.items():
print(key,":",value)
题目7 (实操题)
题干
有这样的一个列表
product = [
{"name": "电脑", "price": 7000},
{"name": "鼠标", "price": 30},
{"name": "usb电动小风扇", "price": 20},
{"name": "遮阳伞", "price": 50},
]
然后小明一共有8000块钱,那么他能不能买下这所有商品?
如果能,请输出“能”,否则输出“不能”
训练目标
if判断语句的复习使用
列表与字典的复合使用
遍历列表与遍历字典的使用
训练提示
题目中给了“能不能”三个字,那么这时候用什么语句来实现呢?
题目中数据是用列表来套字典来存储的,那么获取数据是不是要遍历呢?
在判断能不能买下的时候,那么要用那两个数据进行判断呢,这两个数据分别是什么?
参考方案
使用双层for循环来遍历每一个数据,找到价格进行累计,之后判断
操作步骤
- 双层for循环来循环数据
- 在每一层循环中来判断并累计所有的价格
- 在循环结束之后,用总价格进行与总钱数进行比较
参考答案
product = [
{"name": "电脑", "price": 7000},
{"name": "鼠标", "price": 30},
{"name": "usb电动小风扇", "price": 20},
{"name": "遮阳伞", "price": 50},
]
sum_price = 0
for dict1 in product:
for key in dict1:
if key == 'price':
sum_price += dict1['price']
print(f'购买的总价格是:{sum_price}')
if sum_price <= 8000:
print('能')
else:
print('不能')
自主预习
题目8 (实操题)
题干
定义一个简单的函数run,函数的功能是输出"我在跑步" 以及 “管住嘴,迈开腿”,并调用此函数。
训练目标
- 如何定义一个函数
- 调用函数的方式
训练提示
- 定义函数的形式是什么?声明函数的关键字是什么?
- 怎么让函数运行?
参考方案
- 用def关键字定义函数
- 用函数名+小括号的方式来调用函数
操作步骤
- def run(): …
- run()
参考答案
def run():
print('我在跑步')
print('管住嘴,迈开腿')
run()
题目9 (实操题)
题干
在第一题中,我们已经用函数run实现了一些功能,如果我们想run函数做的操作执行1000遍,怎么实现代码?
训练目标
- 让同学们知道应用函数的好处
训练提示
- 我们用run函数来实现一个功能,实现一次功能就调用一次run函数,那么实现1000遍怎么实现呢?
参考方案
- 执行1000遍函数,可以调用1000次函数
- 可以用for循环来实现1000次调用
参考答案
def run():
print('我在跑步')
print('管住嘴,迈开腿')
for i in range(1000):
run()
题目10
定义一个函数max,接受的参数类型是数值,最终返回两个数中的最大值
训练提示
第一步:定义一个函数max
第二步:定义两个形参
第三步:通过比较这两个参数返回其中较大的
参考答案
def compare(a,b):
return max(a,b)
a =int(input('请输入一个整数a:'))
b =int(input('请输入一个整数b:'))
c = compare(a,b)
print(f'a,b较大的数是:{c}')
题目11
定义一个函数 sum_random 接收二个参数 m, n ,在函数中计算 m + n 的值,并打印结果,要求 m 和 n 是 1 – 100 之间的数
训练提示
第一步:定义函数并接收两个参数
第二步:判断这两个参数是都在1-100之间,如果在,将这两个数相加值保存,如果不在则提示输入错误
第三步:调用函数
参考答案
def sum_random(m,n):
return m + n
m = int(input('请输入数字m:'))
n = int(input('请输入数字n:'))
if 1 <= m <= 100 and 1 <= n <=100:
print(sum_random(m,n))
else:
print('输入错误,请输范围:1-00,请重新输入')