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

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

实验报告一 python序列结构

姓名:黄浩展

班级:软件22-6

一、实验目的

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

二、实验内容

1.编写程序,用一个变量存储以下信息:学号,姓名,所在学院,专业名称。 2.编写程序,用一个变量存储你所在小组的组员名单。 3.对组员名单进行操作,如增加一个同学,减少一个同学,修改一个同学的姓名。 4.编写程序,录入小组成员的姓氏,利用集合输出小组中的所有姓氏。 5.编写程序,用一个变量存储组员名单,组员Python成绩,计算组员总人数,总分,平均分。 6.编写程序,用一个变量存储组员成绩,要求有低于6060的成绩,利用列表推导式,筛选出低于6060分的成绩。 7.编写程序,利用列表推导式将列表中的整数提取出来[123, 'hello', (1,2), 456, {23}, {'a':789}]。 8.利用生成器表达式生成0~9的数值,要求每一个数值乘以你的幸运数字,最后将生成器对象转换成列表,输出列表的结果。 9.给定一个列表member0 = ["今天","天气","真好"],要求通过insert()变成member1 = ["今天","的","天气","是","真好","呀"]

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

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

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

三、实验结果

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

List = ['学号','姓名','学院','专业']
print (List)
copy

运行结果:![image-20230304175723537](C:\Users\12041\AppData\Roaming\Typora\typora-user-images\image-202 图片描述

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

Name_List = ['zhangsan','lisi','wangwu']
print (Name_List)
copy

运行结果:image-20230304175854536 图片描述

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

Name_List = ['zhangsan','lisi','wangwu']
#增加
Name_List.append('lihua')
#删减
del Name_List[0]
#修改
Name_List[0] = 'zhangsan'
print (Name_List)
copy

运行结果:image-20230304180350849 图片描述

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

#创建空集合
Surname = set()
n = input('input:')
n = int(n)
i = 0
#输入姓氏
while i < n :
    i = i + 1
    Surname.add(input("input:"))
#输出所有姓氏
print (Surname)
copy

运行结果:

image-20230304181821555 图片描述

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

reserve = {'zhangsan' : 87,'lisi' : 95,'wangwu' : 71}
#输出总人数
print("总人数:")
print(len(reserve))
#输出总分
print("总分:")
sum = reserve['zhangsan'] + reserve['lisi']  + reserve['wangwu']
print(sum)
#计算平均分
sverage = sum / len(reserve)
print("平均分:",sverage)
 
copy

运行结果:

image-20230304182740028 图片描述

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

List = [87,97,33,62,51]
#列表推导式
Low = [i for i in List if i <= 60]
print ("低于60分的:",Low)
copy

运行结果:image-20230304183330360 图片描述

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

List = [123,'hello',(1,2),456,{23},{'a' : 789}]
print(List[0],List[2][0],List[2][1],List[3],List[4],List[5]['a'])
copy

运行结果:

image-20230304184839449 图片描述

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

#生成器
a =  (x * 3 for x in range(0,10))
#转为列表
b = list(a)
print(b)
copy

运行结果:image-20230304185423138 图片描述

9.给定一个列表member0 = ["今天","天气","真好"],要求通过insert()变成member1 = ["今天","的","天气","是","真好","呀"]

#第一种方法:insert()
member0 = ["今天","天气","真好"]
member0.insert(1,'的')
member1 = member0
print(member1)
#第二种方法:切片
member0 = ["今天","天气","真好"]
member0[1:1] = ['的']
member2=member0
print(member2)
copy

image-20230304190053059 图片描述

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}]
n = input("input:")
n = int (n)
print(carts)
sum = carts[0]['price'] + carts[1]['price']*carts[1]['num'] +carts[2]['price']
if sum > n :
    print("余额不足")
else :
    print("购买成功")
copy

运行结果:image-20230304191410017 图片描述

四、实验小结

1.关于列表的函数使用仍不熟练,如append(),del等。

2.要注意input()输出的是str型,需要int转换。

3.列表推导式使用不熟练。

4.在第七实验中,集合输出后仍带有{}。

5.列表的切片使用不熟练。

6.注意if语句的格式。

最新评论

第7题,注意是列表推导式。 第9题,要按照题目要求,输出内容少“呀”。 其它都很不错,逻辑很清楚,有些还可以进行简化,继续加油。

2023-03-16 22:32:27
回复