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

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

Python 语言程序设计实验2023春季

实验报告一 Python序列结构

实验报告一 Python序列结构

一、实验学时: 2学时

二、实验目的

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

三、实验内容

1.编写程序,用一个变量存储以下信息:学号,姓名,所在学院,专业名称。
2.编写程序,用一个变量存储你所在小组的组员名单。
3.对组员名单进行操作,如增加一个同学,减少一个同学,修改一个同学的姓名。
4.编写程序,录入小组成员的姓氏,利用集合输出小组中的所有姓氏。
5.编写程序,用一个变量存储组员名单,组员Python成绩,计算组员总人数,总分,平均分。
6.编写程序,用一个变量存储组员成绩,要求有低于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.编写程序,用一个变量存储以下信息:学号,姓名,所在学院,专业名称。
"""程序名:t1.cpp
   功能: 用一个变量储存信息
   作者:陈铭
   学号:20222501491
   日期:2023.3.3
   思路:直接用字典就可以了
"""
x = {"Student number":20222501491,"Name":"陈铭" ,"Academy":"软件学院","specialized":"软件工程"}
x
copy

图片描述

2.编写程序,用一个变量存储你所在小组的组员名单
"""程序名:t2.cpp
   功能: 用一个变量储存成员信息
   作者:陈铭
   学号:20222501491
   日期:2023.3.3
   思路:用字典将元素连接起来
"""
x = {"陈铭","小明","小小明","小小小明"}
for i,j in enumerate(x):
    print(i,j)
copy

图片描述

3.对组员名单进行操作,如增加一个同学,减少一个同学,修改一个同学的姓名。
"""程序名:t3.cpp
   功能: 实现增加,减少,和修改名字
   作者:陈铭
   学号:20222501491
   日期:2023.3.3
   思路:用列表将元素连接起来,用append函数实现增加,remove函数实现删除
"""
x = ["陈铭","小明","小小明","小小小明"]
x.append("小明1")
x[1] = "小明2"
x.remove("小小明")
for i , j in enumerate(x):
    print(i,j)
copy

图片描述

4.编写程序,录入小组成员的姓氏,利用集合输出小组中的所有姓氏。
"""程序名:t4.cpp
   功能: 实现集合,并输出所有姓氏
   作者:陈铭
   学号:20222501491
   日期:2023.3.3
   思路:将姓氏集合赋值给x,输出x
"""
x = {"陈","小","大","中"}
x
copy

图片描述

5.编写程序,用一个变量存储组员名单,组员Python成绩,计算组员总人数,总分,平均分。
"""程序名:t5.cpp
   功能: 计算总人数,总分,平均分
   作者:陈铭
   学号:20222501491
   日期:2023.3.3
   思路:字典联系成员,len函数计算总人数,用values方法计算总分,设置x表示平均分
"""
student = {"陈铭":80,"小明":85,"中明":90,"大明":100}
print(student)
zongshu = len(student)
zongfen = sum(student.values())
print("总分为:  ",zongfen)
x = zongfen /zongshu
print ("平均分为: ",x)
copy

图片描述

6.编写程序,用一个变量存储组员成绩,要求有低于60的成绩,利用列表推导式,筛选出低于60分的成绩。
"""程序名:t6.cpp
   功能: 一个变量存储成绩,找到不及格的成绩
   作者:陈铭
   学号:20222501491
   日期:2023.3.3
   思路:用一个列表存储成绩,用x代表不及格成绩并输出
"""
list = [40,50,60,70,80,55]
x = [n for n in list if n<60]
print (x)
copy

图片描述

7.编写程序,利用列表推导式将列表中的整数提取出来[123, 'hello', (1,2), 456, {23}, {'a':789}]
"""程序名:t7.cpp
   功能: 从一个列表中提取整数
   作者:陈铭
   学号:20222501491
   日期:2023.3.3
   思路:用list1表示列表,用list2 储存整数,然后用列表推导式输出
"""
list1 = [123, 'hello', (1,2), 456, {23}, {'a':789}]
list2 = [word for word in list1 if type(word)is int]
print(list2)
copy

图片描述

8.利用生成器表达式生成0~9的数值,要求每一个数值乘以你的幸运数字,最后将生成器对象转换成列表,输出列表的结果。
"""程序名:t8.cpp
   功能: 利用生成器表达式生成0-9的数值,要求每一个数值乘以你的幸运数字,最后将生成器对象转换成列表,输出列表的结果
   作者:陈铭
   学号:20222501491
   日期:2023.3.3
   思路:用for i in range函数给i值,i*幸运数字8,用list函数转化列表给x,并输出
"""
x = list ((i*8 for i in range(0,10)))
print(x)
copy

图片描述

9.给定一个列表member0 = ["今天","天气","真好"],要求通过insert()方法和切片两种方案,把列表member0变成member1 = ["今天","的","天气","是","真好","呀"]
"""程序名:t9.cpp
   功能: 用insert 和切片给列表加元素
   作者:陈铭
   学号:20222501491
   日期:2023.3.3
   思路:多次用insert函数和切片即可
"""
member0 = ["今天","天气","真好"]
member0.insert(1,"的")
member0.insert(3,"是")
member0.insert(5,"呀")
member1=member0
print(member1,"   这是insert方法")
member0 = ["今天","天气","真好"]
m1 = ["的"]
m2 = ["是"]
m3 = ["呀"]
member0[1: 1]=m1
member0[3: 3]=m2
member0[5: 5]=m3
member1=member0
print(member1,"   这是切片方法")
copy

图片描述

10.现有一购物车列表如下:
carts=[{"name":"床", "price":1999, "num":1}, {"name":"枕头", "price":10,"num":2}, {"name":"被子", "price":20, "num":1}]
copy
要求通过用户输入总资产,例如:3000,然后显示购物车列表,计算购物车商品总金额,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
"""程序名:t10.cpp
   功能:计算购物车总额,并检测余额是否不足 
   作者:陈铭
   学号:20222501491
   日期:2023.3.3
   思路:嵌套列表和字典,计算总额,使用if语句检测余额是否不足
"""
money = int(input("请输入你的总资产:    "))
carts=[{"name":"床", "price":1999,"num":1},
       {"name":"枕头", "price":10,"num":2}, 
       {"name":"被子", "price":20,"num":1}]
print("购物车列表为:",carts)
a=carts[0]["num"]*carts[0]["price"]
b=carts[1]["num"]*carts[1]["price"]
c=carts[2]["num"]*carts[2]["price"]
moneyneeded=a+b+c
moneyneeded
if (money<moneyneeded):
    print("余额不足")
else:
    print("购买成功")
copy

图片描述

五、实验小结

问题与解决办法:

1.编译出错,提示:

图片描述

解决办法:将“中文”的冒号改为“英文”的冒号即可

2.语法错误,提示:

图片描述

解决办法:询问同学得知正确写法:

moneyneeded=carts[0]["price"]*carts[0]["num"]
copy

3.编译错误,提示:

图片描述

解决办法:自己重新检查发现函数调用是用点号而不是逗号

4.和问题一同样的错误

图片描述

5.编译错误,提示:

图片描述

解决办法:重新检测发现缩进错误,def后面少了一个空格

心得体会

1.代码编写不够熟练,耗费时间长,根本原因是连、练少了,还得多加练习

2.编写是由于粗心犯了很多错误,也有相同的错误,如问题1和问题4.自己应该长记性,下次不犯同样的错误

3.对书上的代码不够熟悉,要多敲,多理解,做到滚瓜烂熟.

最新评论

实验报告完成度高,格式规范,程序内容正确,符合题目要求,运行结果合理。

2023-09-01 21:22:45
回复