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

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

实验一 Python序列结构

一、实验学时:2学时

二、实验目的

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

    三、实验内容

  5. 编写程序,用一个变量存储以下信息:学号,姓名,所在学院,专业名称。
  6. 编写程序,用一个变量存储你所在小组的组员名单。
  7. 对组员名单进行操作,如增加一个同学,减少一个同学,修改一个同学的姓名。
  8. 编写程序,录入小组成员的姓氏,利用集合输出小组中的所有姓氏。
  9. 编写程序,用一个变量存储组员名单,组员Python成绩,计算组员总人数,总分,平均分。
  10. 编写程序,用一个变量存储组员成绩,要求有低于 60的成绩,利用列表推导式,筛选出低于60分的成绩。
  11. 编写程序,利用列表推导式将列表中的整数提取出来[123, 'hello', (1,2), 456, {23}, {'a':789}]。
  12. 利用生成器表达式生成0~9的数值,要求每一个数值乘以你的幸运数字,最后将生成器对象转换成列表,输出列表的结果。
  13. 给定一个列表member0 = ["今天","天气","真好"],要求通过insert()方法和切片两种方案,把列表member0变成member1 = ["今天","的","天气","是","真好","呀"]。
  14. 现有一购物车列表如下: carts=[{"name":"床", "price":1999, "num":1}, {"name":"枕头", "price":10,"num":2}, {"name":"被子", "price":20, "num":1}] 要求通过用户输入总资产,例如:3000,然后显示购物车列表,计算购物车商品总金额,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。

    四、实验结果

  15. 编写程序,用一个变量存储以下信息:学号,姓名,所在学院,专业名称。 程序名:test1.py 功能:用一个变量存储信息并可输出 作者:荣小安 学号:20222501636 日期:2023.03.08 思路:创建一个列表来存储信息并可输出这些信息
>>> information_list=['20222501636',"荣小安","软件学院","软件工程"]
>>> print(information_list)
['20222501636', '荣小安', '软件学院', '软件工程']
copy

运行截图: 图片描述 2.编写程序,用一个变量存储你所在小组的组员名单。 程序名:test2.py 功能:用一个变量存储小组成员名单并可输出 作者:荣小安 学号:20222501636 日期:2023.03.08 思路:创建一个列表来存储这些信息并可输出

>>> group_list=["李尚","陈诺","赛普拉","许祯宝","荣小安"]
>>> print("小组成员有:",group_list)
copy

运行截图: 图片描述 3.对组员名单进行操作,如增加一个同学,减少一个同学,修改一个同学的姓名。 程序名:test3.py 功能:对组员名单进行操作 作者:荣小安 学号:20222501636 日期:2023.03.09 思路:不涉及大量元素的添加,使用+运算符对列表元素进行添加;使用del运算符对列表元素进行删除;使用表示序号或位置的整数作下标修改列表中的元素

>>> group_list=["李尚","陈诺","赛普拉","许祯宝","荣小安"]
>>> group_list=group_list+["小明"]
>>> print(group_list)
['李尚', '陈诺', '赛普拉', '许祯宝', '荣小安', '小明']
>>> del group_list[5]
>>> print(group_list)
['李尚', '陈诺', '赛普拉', '许祯宝', '荣小安']
>>> group_list[4]="荣小花"
>>> print(group_list)
['李尚', '陈诺', '赛普拉', '许祯宝', '荣小花']
copy

运行截图: 图片描述 4.编写程序,录入小组成员的姓氏,利用集合输出小组中的所有姓氏。 程序名:test4.py 功能:录入小组成员的姓氏并输出 作者:荣小安 学号:20222501636 日期:2023.03.09 思路:利用集合录入信息并输出

>>> group={"李","陈","玉山江","许","荣"}#录入成员姓氏
>>> print(group)#利用集合出小组中的所有姓氏
copy

运行截图: 图片描述 5.编写程序,用一个变量存储组员名单,组员Python成绩,计算组员总人数,总分,平均分。 程序名:test5.py 功能:记录小组成员及成绩并计算组员总人数、总分、平均分 作者:荣小安 学号:20222501636 日期:2023.03.09 思路:用字典录入名单及成绩信息,用len函数计算人数,用sum(a.values())计算总分,用总分除人数得平均分

>>> grade_information={"小明":80,"小红":85,"小刚":93}#存储组员名单,组员Python成绩
>>> print("小组总人数:",len(grade_information))#计算组员总人数
小组总人数: 3
>>> print("小组总分:",sum(grade_information.values()))#计算小组总分
小组总分: 258
>>> print("小组平均分:",sum(grade_information.values())/len(grade_information))
小组平均分: 86.0
>>> #计算小组平均分
copy

运行截图: 图片描述 6.编写程序,用一个变量存储组员成绩,要求有低于 60的成绩,利用列表推导式,筛选出低于60分的成绩。 程序名:test6.py 功能:筛选符合条件的数 作者:荣小安 学号:20222501636 日期:2023.03.09 思路:用列表录入成绩,再利用列表推导式筛选出低于60分的成绩

>>> grade=[56,35,57,60,72,80,90]
>>> grade=[i for i in grade if i<60]#用列表推导式筛选低于60分的成绩
>>> print(grade)
copy

运行截图: 图片描述 7.编写程序,利用列表推导式将列表中的整数提取出来[123, 'hello', (1,2), 456, {23}, {'a':789}]。 程序名:test7.py 功能:利用列表推导式提取列表中指定条件的数 作者:荣小安 学号:20222501636 日期:2023.03.09 思路:先把数据放入一个列表中,运用列表推导式将int类型数据提出来

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

运行截图: 图片描述 8.利用生成器表达式生成09的数值,要求每一个数值乘以你的幸运数字,最后将生成器对象转换成列表,输出列表的结果。 程序名:test8.py 功能:利用生成器表达式生成09的数值按要求操作并转换为列表输出 作者:荣小安 学号:20222501636 日期:2023.03.10 思路:先输入一个幸运数,由于会默认为字符串需强制转化为整形数,再写一个生成器对象,最后转换为列表输出

>>> n=int(input("请输入你的幸运数字:"))#将n转化为整型数并提示输入
请输入你的幸运数字:2
>>> a=((i*2) for i in range(10))
>>> list(a)#生成一个生成器对象并转换为列表
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
copy

运行截图: 图片描述 9.给定一个列表member0 = ["今天","天气","真好"],要求通过insert()方法和切片两种方案,把列表member0变成member1 = ["今天","的","天气","是","真好","呀"]。 程序名:test9.py 功能:通过inset向列表中添加元素 作者:荣小安 学号:20222501636 日期:2023.03.10 思路:由于添加的元素不一样,用insert向列表中多次添加元素达到目的;在用切片时无法在中间添加元素,只会被替换,所以先从末尾添加,然后在中间额外添加2个元素一共达到6个元素,再在此基础上进行切片替换达到目的

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

运行截图: 图片描述

>>> member0 = ["今天","天气","真好"]
>>> member0[len(member0):]=["呀"]
>>> member0[1:2]=["是"]*3
>>> member0
['今天', '是', '是', '是', '真好', '呀']
>>> member0[2:3]=["天气"]
>>> member0
['今天', '是', '天气', '是', '真好', '呀']
>>> member0[1:2]=["的"]
>>> 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 功能:计算并判断资产是否足够购买商品 作者:荣小安 学号:20222501636 日期:2023.03.11 思路:用for循环计算商品总价格,用if条件语句判断能否购买

>>> carts=[{"name":"床", "price":1999, "num":1}, {"name":"枕头", "price":10,"num":2}, {"name":"被子", "price":20, "num":1}]
>>> m=int(input("请输入您的总资产:"))#输入总资产
请输入您的总资产:3000
>>> print(carts)#返回购物车列表
[{'name': '床', 'price': 1999, 'num': 1}, {'name': '枕头', 'price': 10, 'num': 2}, {'name': '被子', 'price': 20, 'num': 1}]
>>> sum=0
>>> for x in range(len(carts)):
    sum= sum+carts[x].get("price")*carts[x].get("num")#计算购物车商品总价格

    
>>> if m<sum:
    print("账户余额不足")#如果总资产小于商品总额提示账户余额不足
else:
    print("购买成功")#如果总资产大于等于商品总额提示购买成功

    
购买成功
>>> 
copy

运行截图: 图片描述 ##五、实验小结

(包括问题和解决办法、心得体会、意见与建议等) 问题:不清楚如何将列表中字典的值进行乘积求和。 解决办法:通过网络搜索和查看教材了解到可采用列表[].get()的形式获取字典的值并乘积求和。 问题:报错unexpected indent。 解决办法:通过单词查询得知这是意外缩进的意思,删去代码头部一个空格符解决办法。 心得体会:书上的知识很多,但只有实践了才能算学习,要多多自己去写。同时,书上的知识并非全面的,我们要学习自己去寻找答案。 意见与建议:无。

最新评论

题目内容正确、方法规范、格式略有问题,一至五个部分完整

2023-03-27 17:01:31
回复