实验报告完整,格式规范,程序内容整体符合题目要求,运行结果合理。
#程序名:test1
#功能:学生信息储存
#作者:张文博
#学号:20222501266
#日期:2023.3.7
#思路:用__init__创建初始化对象,结合信息输出存储的信息。
class student:
def __init__(a,l,n,w,z):
a.num = l
a.name = n
a.where = w
a.major = z
s = student("250","小明","软件学院","软件工程")
print(s.num+" "+s.name+" "+s.where+" "+s.major)
copy
运行截图
2.编写程序,用一个变量存储你所在小组的组员名单。
#思路:用一个变量存储组员名单后输出
m =["组员名单:赵,钱,松,李"]
print(m)
copy
运行截图
3.对组员名单进行操作,如增加一个同学,减少一个同学,修改一个同学的姓名。
#思路:用input输入组员名单,再用split将字符串切片转换成列表,要增加的同学用append在末尾加元素,用pop移除元素
L = input("请输入组员名单:")
X = list(L.split())
print("小组成员有:",X)
name1 = input("请输入要增加的同学:")
X.append(name1)-
print("增加后的名单:",X)
name2 = int(input("请输入要减少的同学的序号:"))
X.pop(name2 - 1)
print("减少后的名单为:",X)
name3 = int(input("请输入要修改小组成员序号:"))
name4 = input("请输入要增加的同学姓名:")
X[name3-1] = name4
print("最终修改名单:",X)
copy
运行截图
4.编写程序,录入小组成员的姓氏,利用集合输出小组中的所有姓氏。
#思路:使用input输入,利用set创建集合并用split将切片转换为列表
n1 = input("请输入姓氏:")
n2 = set(n1.split(" "))
print("输出小组成员姓氏:")
for name in n2:
print(name,end=" ")
copy
运行截图
5.编写程序,用一个变量存储组员名单,组员Python成绩,计算组员总人数,总分,平均分。
#思路:通过dict字典和zip搭配存储成员成绩和姓名,利用字典里的操作len,sum等算出各种分数
name ={"张","钱","孙"}
grade = {78,98,84}
x = dict(zip(name,grade))
print("组员总人数:",len(x))
print("总分:",sum(x.values()))
print("平均分:%0.2f" %(sum(x.values())/len(x)))
copy
运行截图
6.编写程序,用一个变量存储组员成绩,要求有低于 60 60的成绩,利用列表推导式,筛选出低于 60 60分的成绩。
#思路:通过dict字典操作,再利用列表推导式筛选出分数不及格的。
name = {"小明","小红","小刚","李华"}
grade = {87, 92, 74, 36}
s = dict(zip(name,grade))
garde = list(s.values())
m= [i for i in grade if i<60]
print("低于60分的成绩:",m)
copy
运行截图
7.编写程序,利用列表推导式将列表中的整数提取出来[123, 'hello', (1,2), 456, {23}, {'a':789}]。
#思路:用列表推导式和type筛选出int类型的后输出。
alist = [123,'hello',(1,2),456,{23},{'a':789}]
alist = [x for x in alist if type(x) == int]
print(alist)
copy
运行截图
8.利用生成器表达式生成0~9的数值,要求每一个数值乘以你的幸运数字,最后将生成器对象转换成列表,输出列表的结果。
#思路:用生成器表达式计算乘以计算结果,然后创建空列表,用append添加到空列表然后输出结果。
a=[]
x = (i*14 for i in range(10))
for n in x:
a.append(n)
print(a)
copy
运行截图
9.给定一个列表member0 = ["今天","天气","真好"],要求通过insert()方法和切片两种方案,把列表member0变成member1 = ["今天","的","天气","是","真好","呀"]。
#使用insert方法
member1 = ["今天","天气","真好"]
member1.insert(1,"的")
member1.insert(3,"是")
member1.insert(5,"呀")
member = member1
print("插入后的结果:",member1)
copy
运行截图
#使用切片方法
member2 = ["今天","天气","真好"]
member2[1:1]=["的"]
member2[3:3]=["是"]
member2[5:5]=["呀"]
member = member2
print("插入后的结果:",member)
copy
运行截图
10.现有一购物车列表如下: carts=[{"name":"床", "price":1999, "num":1}, {"name":"枕头", "price":10,"num":2}, {"name":"被子", "price":20, "num":1}] 要求通过用户输入总资产,例如: 3000 3000,然后显示购物车列表,计算购物车商品总金额,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
#思路:利用input输入资产,之后利用字典item返回遍历元组,用n表示总价,累加即为三个物品的总价,然后进行比较解决问题。
a=int (input("输入你的资产:"))
carts=[{"name":"床", "price":1999, "num":1}, {"name":"枕头", "price":10,"num":2}, {"name":"被子", "price":20, "num":1}]
print(carts)
b = 0
for i in range(len(carts)):
for x,y in carts[i].items():
n= (carts[i])['price']*(carts[i])['num']
b=b+n
if b>a:
print("余额不足")
else:
print("购买成功")
copy
运行截图
问题与解决方法:
1.编译出错,提示Traceback (most recent call last): File "D:\python\ok\test3.py", line 8, in X.pop(name2 - 1) IndexError: pop index out of range 解决方法:输入错误,在输入三个名称的时候中间不加逗号。
2.问题:内置函数的使用不太清楚,for循环的使用不了解 解决方法:翻看课本,询问同学
3.问题:对切片运用不熟练。 解决方法:多次编译切片相关代码。
心得体会:
1.掌握熟悉了Python常用内置函数,列表,元组,集合。
2.熟悉了字典的使用方法。
3.理解熟悉列表推导式、生成器表达式的工作原理。
4.掌握了切片和序列解包的操作。
学习时间 62分钟
操作时间 0分钟
按键次数 0次
实验次数 10次
报告字数 5234字
是否完成 完成