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

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

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

实验报告一

姓名:刘佰哲 班级:22-8 发布于:2023-03-07 23:37:00 得分:

一、实验学时: 2学时

二、实验目的

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

三、实验内容

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

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

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

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

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

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

7.编写程序,利用列表推导式将列表jj中的整数提取出来[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 = ["name", "num", "academy", "major"]
blist = []
for i in range(0, 4):
    blist.append(str(input("{} : ".format(alist[i]))))
print(blist)
copy

结果

图片描述

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

stu = []
for i in range(0, 6, 1):
    stu.append(str(input("member{} is : ".format(i+1))))
print(stu)
copy

结果

图片描述

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

stu = []
for i in range(0, 6, 1):
    stu.append(str(input("member{} is : ".format(i+1))))
print(stu)
stu.append("xxx")#加一个成员
print(stu)
stu.insert(0, "jjj")#在第一个位置加上jjj
print(stu)
stu.pop()#删掉最后一个
print(stu)
stu.pop(0)#删掉第一个
print(stu)
stu.remove("lbz")#删掉lbz
print(stu)
stu[-2] = "lll"#更改倒数第二个
print(stu)
copy

结果

图片描述

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

a = set()
for j in range(0, 6, 1):
    a.add(input("第{}个人的姓氏: ".format(j+1)))
print(a)
copy

结果

图片描述

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

alist = []
flag = 1
i = 0
sum = 0
while flag == 1:
    a = input("姓名: ")
    b = int(input("python成绩: "))
    atuple = (a, b)
    alist.append(atuple)
    i = i + 1
    sum = sum + b
    flag = int(input("输入1继续输入0结束"))
    ave = sum / i
print(alist, f"共{i}人, 总分为{sum}, 平均分为{ave}")
copy

结果

图片描述

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

a = []
flag = 1
i = 1
while flag == 1:
    a.append(int(input("第{}个人的成绩为".format(i))))
    i = i + 1
    flag = int(input("输入1继续输入0结束"))
print(a)
b = [j for j in a if j < 60]
print(f"不及格的有{b}")
copy

结果

图片描述

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

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

结果

图片描述

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

b = int(input("输入你的幸运数字"))
print(b)
a = (i*b for i in range(0, 10))
print(list(a))
copy

结果

图片描述

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

member0 = ["今天", "天气", "真好"]
member0.insert(1, "的")
member0.insert(3, "是")
member0.append("呀")
member1 = member0
print(member1)
//////////////
member0 = ["今天", "天气", "真好"]
member1 = member0[:1] + ["的"] + member0[1:2] + ["是"] + member0[2:] + ["呀"]
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}]
x = int(input("请输入总资产"))
print(carts)

a = carts[0]["num"]*carts[0]["price"]
b = carts[1]["num"]*carts[1]["price"]
c = carts[2]["num"]*carts[2]["price"]
summ = a + b + c
if summ > x:
    print("余额不足")
else:
    print("购买成功")
copy

结果 图片描述

图片描述

五、实验小结

问题与解决办法:

1.对python掌握不够熟练,部分语法多次发生错误

2.对元组 列表 集合 字典 区分不清,导致使用时报错

3.# 报错:SyntaxError: invalid syntax 检查过后发现忘记加英文冒号

4.# 报错:IndexError: list index out of range检查后发现引用超过list最大索引

5.#报错:TabError: inconsistent use of tabs and spaces in indentation 从网上查找资料发现Tab空格混用

最新评论

逻辑很不错,完美。

2023-03-16 22:47:45
回复