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

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

实验报告一 Python序列结构

班级:软件22-4班 姓名:张权 学号:20222501435

一、实验学时:2学时

二、实验目的

  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 = ["今天","天气","真好"],要求通过inster()方法和切片两种方案,把列表member0变成member1 = ["今天","的","天气","是","真好","呀"]

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

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

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

四、实验结果

(在此部分列出保持缩进格式的程序代码及运行结果截图,请注意保持格式统一,截图清晰,大小合适)

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

#程序名 test1.py
#功能:用变量存储信息
#作者:张权
#学号:20222501435
#日期:2023.3.4
#思路:创建一个字典,用字典的“键”存放固定的信息名称,用字典的“值”存放信息。
a_dict={'学号':'20222222222','姓名':'张三','学院':'软件学院','专业':'软件专业'}
print(a_dict)
copy

运行结果截图如下:

图片描述

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

#程序名 test2.py
#功能:存储单元小组的组员名单
#作者:张权
#学号:20222501435
#日期:2023.3.5
#思路:用列表存储字符型元素,而每个字符型元素就是小组成员的名字。
name_list=["张三","李四","王五","刘六"]
for i in name_list:
    print(i,end="\t")
copy

运行结果截图如下:

图片描述

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

#程序名 test3.py
#功能:对组员名单进行操作
#作者:张权
#学号:20222501435
#日期:2023.3.5
#思路:用列表的append()方法增加一个名字,用remove()方法减少一个同学。
name_list=["张三","李四","王五","刘六"]
name_list.append("赵七")#增加一个同学
print(name_list)
name_list.remove("刘六")#删除一个同学
print(name_list)
name_list[3]='小二'
print(name_list)
copy

运行结果截图如下:

图片描述

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

#程序名 test4.py
#功能:录入小组成员的姓氏,输出小组中的所有姓氏
#作者:张权
#学号:20222501435
#日期:2023.3.5
#思路:用集合录入所有小组成员的姓氏,并用print()函数输出
xing={"刘","关","张","赵","黄","马"}
print(xing)
copy

运行结果截图如下:

图片描述

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

#程序名 test5.py
#功能:计算组员总人数,总分,平均分。
#作者:张权
#学号:20222501435
#日期:2023.3.5
'''
思路:用字典的存储组员的信息:”键“存储组员的名字,”值“存储组员的成绩
则用len()函数计算字典中元素的个数即为组员的总人数
用sun()函数计算所有元素值的和即为组员的总成绩
再用组员的总成绩除以组员的总人数即为平均成绩
'''
a_dict={"张三":94,"李四":80,"王五":89,"赵六":90}
people_num=len(a_dict)
print("组员的总人数为:",people_num)
sum_score=sum(a_dict.values())
print("组员的总成绩为:",sum_score)
average_score=sum_score/people_num
print("组员的平均成绩为:",average_score)
copy

运行结果截图如下:

图片描述

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

#程序名 test6.py
#功能:筛选出组员成绩中低于60分的成绩。
#作者:张权
#学号:20222501435
#日期:2023.3.5
'''
思路:利用列表存储组员的成绩
利用列表推导式过滤大于或等于60分成绩的元素,
就可以筛选出低于60分的成绩
'''
score_dict=[50,59,60,80]
bad_score=[score for score in score_dict if score<60]#利用列表推导式过滤大于或等于6060分成绩的
print(bad_score)
copy

运行结果截图如下:

图片描述

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

#程序名 test7.py
#功能:将列表中的整数提取出来
#作者:张权
#学号:20222501435
#日期:2023.3.5
#思路:利用列表推导式将列表中不是整数的元素删除,所得的列表中元素都是整数。
alist=[123, 'hello', (1,2), 456, {23}, {'a':789}]
alist=[i for i in alist if type(i)==int]
print(alist)
copy

运行结果截图如下:

图片描述

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

#程序名 test8.py
#功能:利用生成器表达式生成0~9的数值,要求每一个数值乘以你的幸运数字,最后将生成器对象转换成列表,输出列表的结果。
#作者:张权
#学号:20222501435
#日期:2023.3.5
#思路:
alist=(i*6 for i in range(0,10))
blist=list(alist)
print(blist)
copy

运行结果截图如下:

图片描述

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

#程序名 test9.py
#功能:通过insert()方法和切片操作改变列表
#作者:张权
#学号:20222501435
#日期:2023.3.5
#思路:通过insert()方法补全语句,再用切片操作执行空操作
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}]

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

#程序名 test10.py
#功能:判断用户能否购买购物车中的所有物品。
#作者:张权
#学号:20222501435
#日期:2023.3.5
#思路:用input()接收用户总资产,并转换为整形,再将整形与购物车总价格比较,得出是否能支付成功。
carts=[{"name":"床", "price":1999, "num":1},
       {"name":"枕头", "price":10,"num":2},
       {"name":"被子", "price":20, "num":1}]
user_money=int(input('请输入你的总资产:'))
print('购物车列表:',carts)
sum_money=1999*1+10*2+20*1
if user_money>=sum_money:
    print("支付成功")
if user_money<=sum_money:
    print("支付失败")
copy

运行结果截图如下:

图片描述

五、实验小结

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

问题和解决办法:

问题1:列表删除一个元素时用到了列表对象的remove()方法,remove()的括号中加入的是元素的下标,运行程序报错。

解决办法:查看书后发现remove()的括号中应该加入元素的值。

问题2:列表表达式使用不熟练。

​ 解决办法:照书上的例题多练几遍。

心得体会:对待作业不能上来就写,要多练习书上的例题,熟练python基本语言之后再动手写作业。写作业不能用太简单的方法,否则不能锻炼自己的能力。

最新评论

答案正确,程序规范,很好。

2023-07-06 00:19:15
回复