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

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

实验报告一 Python序列结构

班级:软件22-8 姓名:王海龙

一.实验目的

掌握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

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

三.实验步骤及结果

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

    num = int(input("Enter the value of num:")) # 总人数
    stu_list = []
    for x in range(num):
     id_list = []
     name_list = []
     spe_list = []
     aca_list = []
     id_list.append(input(f"学生{x+1}的学号:"))
     name_list.append(input(f"学生{x+1}的姓名:"))
     spe_list.append(input(f"学生{x+1}的专业:"))
     aca_list.append(input(f"学生{x+1}的学院:"))
     stu_list = list(zip(id_list,name_list,spe_list,aca_list))
    print(stu_list)
    
    copy

    运行结果:图片描述

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

    data_list = []
    num = int(input("输入人数:"))
    for x in range(num):
     data_list.append(input(f"成员{x+1}的姓名:"))
    print(data_list)
    
    copy

    运行结果:图片描述

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

    data_list = []
    num = int(input("输入人数:"))
    for x in range(num):
     data_list.append(input(f"成员{x+1}的姓名:"))
    print(list(enumerate(data_list)))
    Flage1 = int(input("1开始删除数据,0不删除数据:"))
    while Flage1:
     del data_list[int(input("输入删除的下标索引:"))]
     Flage1 = 0
    Flage2 = int(input("1开始增加数据,0不增加数据:"))
    while Flage2:
     data_list.append(input("请输入学生姓名:"))
     Flage2 = 0
    Flage3 = int(input("1开始修改数据,0不修改数据:"))
    while Flage3:
     data_list[int(input("请输入修改的下标索引"))] = input("修改为:")
     Flage3 = 0
    print(list(enumerate(data_list)))
    
    copy

    运行结果:图片描述

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

    first_name = []
    n = int(input("输入人数:"))
    for x in range(n):
     first_name.append(input(f"请输入成员{x+1}的姓式:"))
    print(set(first_name))
    
    copy

    运行结果:图片描述

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

    num = int(input("学生数量是:"))
    stu_dit = {}
    total = 0
    for x in range(0,num):
     name = input(f"学生{x+1}姓名:")
     marks = []
     marks.append(int(input(f"该生python的分数是:")))
     stu_dit[name] = marks
    for x in stu_dit.keys():
     for y in stu_dit[x]:
         total += y
    average = total / num
    print("学生人数为%d,各个学生python总分为%d,平均成绩为%.2f"%(num,total,average))
    
    copy

    运行结果:图片描述

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

    num = int(input("学生数量是:"))
    score_list = []
    for x in range(num):
     score_list.append(int(input(f"学生{x+1}的成绩为:")))
    pass_list = [score for score in score_list if score < 60]
    print("低于60分:")
    print(pass_list)
    
    copy

    运行结果:图片描述

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

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

    运行结果:图片描述

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

    luck_list = list((x*9 for x in range(10)))
    print(luck_list)
    
    copy

    运行结果:图片描述

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

    # 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}]
copy

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

carts=[{"name":"床", "price":1999, "num":1}, {"name":"枕头", "price":10,"num":2},
       {"name":"被子", "price":20, "num":1}]
bellence = int(input("请输入你的资产:"))
print(f"你的购物车清单为:{carts}")
total = 0
for x in carts:
    total += x["price"]
if total <= bellence:
    print("购买成功")
else:
    print("余额不足,购买失败")
copy

运行结果:图片描述

四. 实验小结

  1. 学会了列表的各种方法,尤其pop方法可以拿出元素存储在一个变量中,方便使用。
  2. 学会了字典的一般用法,利用key值访问对应数据,也可以使其方便数据的排版。
  3. 学会了列表推导式即以及生成器,可以简化代码,提高效率。
  4. 充分利用循环完成各种输入操作。
  5. 注意input函数返回的是一个字符类型,如需数字则需要将其转化为整型。
  6. 注意甄别列表推导式和生成器代码之间的区别:列表推导式是方括号,而生成器是圆括号,其他语法基本一致。
最新评论

实验报告按要求完成,优秀。

2023-03-03 19:51:04
回复