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

实验报告一 Python序列结构 (3月12日23:00截止)

实验一 Python序列结构

一、实验学时: 2学时

二、实验目的

掌握:Python常用内置对象-列表、元组、字典、集合。

掌握运算符和内置函数对列表、元组、字典、集合的操作。

理解列表推导式、生成器表达式的工作原理。

掌握切片操作。

掌握序列解包的用法。

三、实验内容

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

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.编写程序,用一个变量存储以下信息:学号,姓名,所在学院,专业名称。

tuple_coco = ('stu_num:911', 'name:Scott', 'college:软院', 'major:软工')
print(tuple_coco)
copy

运行结果截图:

图片描述

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

list_group = ['凌', '王', '陈', '张', '张']
print(list_group)
copy

运行结果截图:

图片描述

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

list_group = ['凌', '王', '陈', '张1', '张2']
print(list_group)

list_group[0] = 'Co'
print(list_group)

list_group.append("TAT")
print(list_group)

del list_group[5]
print(list_group)
copy

运行结果截图:

图片描述

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

name_list = input("请输入小组成员的姓氏(_分隔):")
name_set = set(name_list.split("_"))
print("小组成员的姓氏有:")
for name in name_set:
    print(name, end="_")
copy

运行结果截图:

图片描述

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

dict_group=dict([('王', 100), ('陈', 98), ('张', 90), ('凌', 88), ('COCO', 101)])
print('total_p:', len(dict_group))
print('total_score:', sum(dict_group.values()))
print('average_score:', sum(dict_group.values())/len(dict_group))
copy

运行结果截图:

图片描述

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

list_score = [33, 44, 55, 66, 88]
[print(i) for i in list_score if i < 60]
copy

运行结果截图:

图片描述

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

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

运行结果截图:

图片描述

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

list_number = list(range(10))
print(list_number)
X = int(input("输入你的幸运数字:"))
list_number = [i*X for i in list_number]
print(list_number)
copy

运行结果截图:

图片描述

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

member0 = ['今天', '天气', '真好']
member0.insert(1, '的')
member0.insert(3, '是')
member0.insert(5, '呀')
print('insert方法:', member0)
member0 = ['今天', '天气', '真好']
member0[1:1] = '的'
member0[3:3] = '是'
member0[5:5] = '呀'
print('切片操作:', member0)
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}]
print(carts)
whole_price = 0
for i in carts:
    whole_price += i['price']*i['num']
# print(whole_price)
my_money = int(input('请输入的你的money:\n'))
if my_money >= whole_price:
    print('购买成功')
else:
    print('你的账户余额不足,购买失败')
copy

运行结果截图: 成功: 图片描述

失败:

图片描述

五、实验小结 (包括问题和解决办法、心得体会、意见与建议等) 心得体会: 1.初见只觉不过如此,轻松愉快,代码似乎都异常简单 但就只是前面几道题也频频报错,比如没敲空格、中英文符合未及时调整等等形制上的问题,但有思路,可做。

2.后几题问题凸显,对相关操作(尤其是列表推导式和切片操作)相当不熟练,平时只觉着看着没问题,等到实际操作则是另一回事,“纸上得来终觉浅,绝知此事要躬行”,平时要尽可能多实机练习,方才不虚。

最新评论

格式完全错误

2023-06-26 16:04:17
回复