“Python 语言程序设计实验2023春季”实验报告

实验报告一 Python序列结构 截止时间3月8日

实验报告一 Python序列结构

一,实验目的

1.掌握:Python常用内置对象-列表、元组、字典、集合。
2.掌握运算符和内置函数对列表、元组、字典、集合的操作。
3.理解列表推导式、生成器表达式的工作原理。
4.掌握切片操作。
5.掌握序列解包的用法。

二,实验内容

1.编写程序,用一个变量存储以下信息:学号,姓名,所在学院,专业名称。

2.编写程序,用一个变量存储你所在小组的组员名单。

3.对组员名单进行操作,如增加一个同学,减少一个同学,修改一个同学的姓名。

4.编写程序,录入小组成员的姓氏,利用集合输出小组中的所有姓氏。

5.编写程序,用一个变量存储组员名单,组员Python成绩,计算组员总人数,总分,平均分。

6.编写程序,用一个变量存储组员成绩,要求有低于60的成绩,利用列表推导式,筛选出低于60分的成绩。

7.编写程序,利用列表推导式将列表中的整数提取出来[123, 'hello', (1,2), 456, {23}, {'a':789}]

8.利用生成器表达式生成0~9的数值,要求每一个数值乘以你的幸运数字,最后将生成器对象转换成列表,输出列表的结果。

9.给定一个列表member0 = ["今天","天气","真好"],要求通过insert()insert()方法和切片两种方案,把列表member0变成member1 = ["今天","的","天气","是","真好","呀"]

10.现有一购物车列表如下:

carts=[{"name":"床", "price":1999, "num":1}, {"name":"枕头", "price":10,"num":2}, {"name":"被子", "price":20, "num":1}]
copy

要求通过用户输入总资产,例如:30003000,然后显示购物车列表,计算购物车商品总金额,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。

三,实验结果

1.编写程序,用一个变量存储以下信息:学号,姓名,所在学院,专业名称。
代码:

a_dict= {'姓名':'曹涵晶','学号':'20222501062','所在学院':'软件学院','专业名称':'软件工程'} 
print(a_dict) 
for item in a_dict.items(): 
    print(item) 
copy

运行结果:

图片描述
2.编写程序,用一个变量存储你所在小组的组员名单。
代码:

a_dict= {'1号':'王馨竹','2号':'柯思莹','3号':'邓思雨','4号':'曹涵晶','5号':'贾德拉'}
print(a_dict) 
for item in a_dict.items():
     print(item) 
copy

运行结果:

图片描述
3.对组员名单进行操作,如增加一个同学,减少一个同学,修改一个同学的姓名。
代码:

a_dict= {'1号':'王馨竹','2号':'柯思莹','3号':'邓思雨','4号':'曹涵晶','5号':'贾德拉'} 
print(a_dict) 
for item in a_dict.items(): 
    print(item) 
a_dict['5号']='Smith'#增加一个同学
print(a_dict)     
a_dict['3号'] = 'Maya' #修改一个同学 
print(a_dict) 
a_dict.pop('3号') 
print(a_dict)#删除一个同学
copy

运行结果:

图片描述
4.编写程序,录入小组成员的姓氏,利用集合输出小组中的所有姓名。
代码:

a_list=['王馨竹','邓思雨','曹涵晶','胡可','柯思莹','贾德拉'] 
print(a_list) 
b_dict={'王':'王馨竹','邓':'邓思雨','曹':'曹涵晶','胡':'胡可','柯':'柯思莹','贾':'贾德拉'} 
c_set=set(b_dict) 
print(c_set)
copy

运行结果:

图片描述
5.编写程序,用一个变量存储组员名单,组员Python成绩,计算组员总人数,总分,平均分。
代码:

a_dict={'曹涵晶':100,'贾德拉':76,'王馨竹':98,'邓思雨':92,'胡可':67,'柯思莹':88} 
print("该组人数为:") 
print(len(a_dict))#计算组员总人数 
print("该组总分为:") 
print(sum(a_dict.values()))#计算总分 
a=len(a_dict) 
b=(sum(a_dict.values())) 
print("该组平均分为:") 
print(b/a)#计算平均分
copy

运行结果:

图片描述
6.编写程序,用一个变量存储组员成绩,要求有低于60的成绩,利用列表推导式,筛选出低于60分的成绩。
代码:

a_list=[60,54,59,88,60,50,63,72,59,60,59,60,61] 
b_list=[i for i in a_list if i<60] 
print("原来成绩列表:") 
print(a_list) 
print("低于60的成绩列表:") 
print(b_list)
copy

运行结果:

图片描述
7.编写程序,利用列表推导式将列表中的整数提取出来[123, 'hello', (1,2), 456, {23}, {'a':789}]
代码:

a_list=[123, 'hello', (1,2), 456, {23}, {'a':789}] 
print("原列表:") 
print(a_list) 
print("取整数后的列表:") 
b_list=[i for i in a_list if type(i)==int] 
print(b_list)
copy

运行结果:

图片描述

8.利用生成器表达式生成0~9的数值,要求每一个数值乘以你的幸运数字,最后将生成器对象转换成列表,输出列表的结果。
代码:

print("请输入你的幸运数字(0~9之间):") 
a=int(input()) 
b_list=list((i*a for i in range(0,10))) 
print("0~9的数值每一个数值乘以你的幸运数字,输出列表的结果为:") 
print(b_list)
copy

运行结果:

图片描述
9.给定一个列表member0 = ["今天","天气","真好"],要求通过insert()insert()方法和切片两种方案,把列表member0变成member1 = ["今天","的","天气","是","真好","呀"]
代码1:

member0=["今天","天气","真好"] 
print("改变前列表为:") 
print(member0) 
member1=member0 
member1.insert(1,"的") 
member1.insert(3,"是") 
member1.insert(5,"呀") 
print("改变后列表为:") 
print(member1)
copy

运行结果:

图片描述
代码2:

member0=["今天","天气","真好"] 
print("改变前列表为:") 
print(member0) 
member1=member0 
member1[1:]=["的","天气","是","真好"] 
member1[len(member1):]=["呀"] 
print("通过切片方法改变后列表为:") 
print(member1)
copy

运行结果;

图片描述

10.现有一购物车列表如下:

carts=[{"name":"床", "price":1999, "num":1}, {"name":"枕头", "price":10,"num":2}, {"name":"被子", "price":20, "num":1}]
copy

要求通过用户输入总资产,例如:30003000,然后显示购物车列表,计算购物车商品总金额,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
代码:

carts=[{"name":"床", "price":1999, "num":1}, {"name":"枕头", "price":10,"num":2}, {"name":"被子", "price":20, "num":1}] 
print("请输入总资产:") 
a=int(input()) 
print("购物清单为:") 
for item in carts[0].items(): 
    print(item) 
for item in carts[1].items(): 
    print(item) 
for item in carts[2].items(): 
    print(item) 
b=carts[0]["price"]*carts[0]["num"]+carts[1]["price"]*carts[1]["num"]+carts[2]["price"]*carts[2]["num"] 
print("商品总金额为:") 
print(b) 
if a>b: 
   print("可以购买") 
else: 
   print("余额不足")
copy

运行结果:

图片描述

四,实验小结

  1. 通过此次实验学习了Python常用内置对象-列表、元组、字典、集合等的使用
  2. 通过实验掌握运算符和内置函数对列表、元组、字典、集合的操作。
  3. 切片的操作流程和原理
  4. 熟悉序列解包的用法
最新评论

本次实验解题逻辑基本合理,内容基本完整

2023-03-17 22:16:02
回复