1.掌握:Python常用内置对象-列表、元组、字典、集合。
2.掌握运算符和内置函数对列表、元组、字典、集合的操作。
3.理解列表推导式、生成器表达式的工作原理。
4.掌握切片操作。
5.掌握序列解包的用法。
1、编写程序,用一个变量存储以下信息:学号,姓名,所在学院,专业名称。
2、编写程序,用一个变量存储你所在小组的组员名单。
3、对组员名单进行操作,如增加一个同学,减少一个同学,修改一个同学的姓名。
4、编写程序,录入小组成员的姓氏,利用集合输出小组中的所有姓氏。
5、编写程序,用一个变量存储组员名单,组员Python成绩,计算组员总人数,总分,平均分。
6、编写程序,用一个变量存储组员成绩,要求有低于60的成绩,利用列表推导式,筛选出低于60分的成绩。
7、产生两个随机数x,y,要求0<x<y<组员长度.输出组员成绩[x:y]切片的成绩。
8、利用生成器表达式生成0-9的数值,要求每一个数值乘以你的幸运数字,最后将生成器对象转换成列表,输出列表的结果。
9、复制一段文章或者论文,利用字典统计出每个字出现的次数。
10、棋盘一共64个小格子,第一个格子放一粒米,第二个2粒米,第三个4粒米,第四个8粒米,以此类推一直把64个格子放满需要多少粒米?要求使用列表推导式和内置函数进行计算。
1、编写程序,用一个变量存储以下信息:学号,姓名,所在学院,专业名称。
实验思路:设定字典变量,并对其键赋值即可
Dict = dict.fromkeys(['学号', '姓名', '所在学院', '专业名称'])#先定义键
Dict['学号'] = '20212501526'
Dict['姓名'] = '石尊博'
Dict['所在学院'] = '软件学院'
Dict['专业名称'] = '软件工程专业'
print(Dict)
copy
运行结果截图:
2、编写程序,用一个变量存储你所在小组的组员名单。
实验思路:设定列表,将姓名存入列表中
print("小组名单:")
m_list = ['小明', '小李', '小红']
print(m_list)
copy
运行结果截图:
3、对组员名单进行操作,如增加一个同学,减少一个同学,修改一个同学的姓名。
实验思路:使用切片方法对列表进行修改
m_list = ['小明', '小李', '小红']
m_list[len(m_list):] = ['小刚'] #实现增加操作(在尾部添加,要求出尾部位置数,明确位置
print('增加后组员名单为:', m_list)
m_list[2:3:] = [] #实现删除操作(应该是第几个元素:元素位置数+想要删掉的元素个数)
print('减少后组员名单为:', m_list)
m_list[2:3] = ['大刚']#实现修改操作(想要实现插入,就是前面的两个数一样,就在那个数的位置插入了新书,不一样就是修改)
print('修改后组员名单为:', m_list)
copy
运行结果截图:
4、编写程序,录入小组成员的姓氏,利用集合输出小组中的所有姓氏。
实验思路:使用input函数将姓氏放入集合中,自动去掉重复,在输出即可
print('请输入小组成员的姓氏')
Set = input()
print('小组中的所有姓氏为:', Set)
copy
运行结果截图:
5、编写程序,用一个变量存储组员名单,组员Python成绩,计算组员总人数,总分,平均分。
实验思路:将名字,成绩分别作为键和值放入字典中,然后使用len、sum等计算人数、总分、平均分
Dict = {'小明': 95, '小张': 90, '小红': 89, '小李': 97}
Len = len(Dict)
print('小组总人数为:', Len, end='\n')
Sum = 0
for i in Dict.values():
Sum += i
average = Sum / Len
print('总分为:', Sum, end='\n')
print('平均数为:', average, end='\n')
copy
运行结果截图:
6、编写程序,用一个变量存储组员成绩,要求有低于60的成绩,利用列表推导式,筛选出低于60分的成绩。
实验思路:将成绩放入列表中,然后使用列表推导式[for i in List if i < 60]即可
List = [70, 59, 60, 44, 59, 79, 80, 99]
print('低于60分的成绩有:')
print([i for i in List if i < 60])
copy
运行结果截图:
7、产生两个随机数x,y,要求0<x<y<组员长度.输出组员成绩[x:y]切片的成绩。
实验思路:使用import random以及randint函数产生随机数然后使用切片即可
import random
L = 8 #组员长度
alist = [98, 92, 30, 65, 89, 66, 50, 90]
x = random.randint(0, L)
y = random.randint(0, L)
print(alist[x:y])
copy
运行结果截图:
8、利用生成器表达式生成0-9的数值,要求每一个数值乘以你的幸运数字,最后将生成器对象转换成列表,输出列表的结果。
实验思路:使用列表生成器然后将其赋值给新列表再输出即可
g = ((i * 7) for i in range(9))
alist = list(g)
print(alist)
copy
运行结果截图:
9、复制一段文章或者论文,利用字典统计出每个字出现的次数。
实验思路:将文字赋值给变量后,使用zip函数,将文字在列表中展开并创建相应字典键,使用嵌套循环加if判断,如果有相同的字符,键相应的值加一即可
m = '给自己一份坚强,擦干眼泪;给自己一份自信,' \
'不卑不亢;给自己一份洒脱,悠然前行。轻轻品,' \
'静静藏。为了看阳光,我来到这世上;为了与阳光同行,' \
'我笑对忧伤。' #用一个字符串来承接这部分文字
alist = list(zip(m)) #使用zip将文字压缩到列表中(使每个文字分开,字符可以直接用 == 判断是否相等)
adict = dict()
for i in range(len(m)): #先将所有种的字放入字典中并将值设为0,使用字典可以自动去掉重复
adict[alist[i]] = 0
for i in adict: #获取字典中的每个键,用于下面比较是否有这个字,有那么其值就加一
for j in range(len(m)):
if i == alist[j]:
adict[i] += 1
print(adict)
copy
运行结果截图:
10、棋盘一共64个小格子,第一个格子放一粒米,第二个2粒米,第三个4粒米,第四个8粒米,以此类推一直把64个格子放满需要多少粒米?要求使用列表推导式和内置函数进行计算。
实验思路:使用列表推导式,并将i做2**(i-1)即可
alist = [2**(i-1) for i in range(1, 65)]
Sum = sum(alist)
print('共需:', Sum, '粒米')
copy
运行结果截图:
##四、实验小结
问题与解决办法:
1、列表推导式和生成器对象不能熟练使用
解决方法:查阅资料后学习到正确用法,多加练习后熟练掌握
2、无法正常产生随机数
解决方法:查找资料后,了解到没有添加import random语句,导致出错,添加后问题解决
心得体会:
1、使用列表、字典、集合等方法可以快速处理数据,提高效率。
2、使用某些函数时,需要提前导入相应模块,否则程序会出现错误。
学习时间 0分钟
操作时间 0分钟
按键次数 0次
实验次数 4次
报告字数 4337字
是否完成 未完成