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

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

实验一 Python序列结构

班级:22-24 姓名:李堉明

一、实验学时: 2学时

二、实验目的

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

三、实验内容

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

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

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

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

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

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

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

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

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

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

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

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

四、实验结果

(在此部分列出保持缩进格式的程序代码及运行结果截图,请注意保持格式统一,截图清晰,大小合适) 1.编写程序,用一个变量存储以下信息:学号,姓名,所在学院,专业名称。

alist=["20221210212","liyuming","ruan jian xue yuan","ruan jian gong cheng"]
       
print(alist)
copy

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

blist=["李堉明","zhang san","li si","wang wu"]
print(blist)
copy

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

blist=["李堉明","zhang san","li si","wang wu"]
blist.append("wang she")
print(blist)

blist=["李堉明","zhang san","li si","wang wu"]
blist.remove("wangwu")
print(blist)

blist=["李堉明","zhang san","li si","wang wu"]
blist [1]="宵宫"
print(blist)
copy

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

set={"李","zhang ","li ","wang "}
print(set)
copy

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

name0 = {"张三", "李四", "王五"}
grade0 = {100, 60, 80}

s = dict(zip(name0,grade0))

print("组员总人数为:", len(s))
print("组内总分为:", sum(s.values()))
print("组内平均分为:%0.2f" %(sum(s.values())/len(s)))
copy

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

a=[57,58,59,60,61,62,45]
b=[x for x in a if x<60]
print(list(b))
copy

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

a=[123, 'hello', (1,2), 456, {23}, {'a':789}]
b=[x for x in a if type(x) is int]
print(list(b))
copy

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

运行截图:
![图片描述](https://dn-simplecloud.shiyanlou.com/courses/uid2435931-20230311-1678537255310)
n = int(input("请输入你的幸运数字:"))
x =list(i*n for i in range(1,10))        
print(x)
copy

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

member0 = ["今天","天气","真好"]
member0.insert(1,"的")
member0.insert(3,"是")
member0.insert(5,"呀")
member1=member0
print(member1)
copy

运行截图: 图片描述 图片描述 10.现有一购物车列表如下:

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

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

carts=[{"name":"床", "price":1999, "num":1}, {"name":"枕头", "price":10,"num":2}, {"name":"被子", "price":20, "num":1}]
price=0
for i in range(0,len(carts)):
    price =price+carts[i]["price"]*carts[i]["num"]
a=int(input("请输出总资产"))
if a>=price:
    print("购买成功")

if a<price:
    print("购买失败")
          
copy

运行截图: 图片描述

五、实验小结

(包括问题和解决办法、心得体会、意见与建议等) 问题和解决办法

1.在第九题中将代码写成了mumber0=mumber1 此时mumber1没有赋值使得代码出错无法运行

询问同学得知"=”是将等号右边的值赋予给等号左边

2.对切片法不了解

翻课本重新复习切片法如何使用。

心得体会

1.应该对各种函数名做到烂熟于心,不应该在用时才在课本上去翻阅函数名用法。

2.对代码不仅要会敲,更重在理解,因为是转专业的缘故,很多原理都不是很了解,对代码的编写不熟练,格式也不是很规范。

最新评论

题目内容正确、方法规范、格式工整美观,一至五个部分完整。

2023-03-27 16:23:15
回复