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

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

实验报告一 Python序列结构

姓名:闫正鑫 学号:20222501457

一、实验学时: 2学时

二、实验目的

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

三、实验内容

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

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

四、实验结果

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

  1. 编写程序,用一个变量存储以下信息:学号,姓名,所在学院,专业名称。
    student={"学号":2023,"姓名":'张三',"学院":'软件学院',"专业":'软件工程'}
    print(student)
    
    copy

运行截图: 图片描述

  1. 编写程序,用一个变量存储你所在小组的组员名单。
    alist={'张','王','李','冯'}
    print(alist)
    
    copy

运行截图: 图片描述

  1. 对组员名单进行操作,如增加一个同学,减少一个同学,修改一个同学的姓名。
    a=['张三','李四']
    print(a)
    a.append('王五')
    print('增加后',a)
    a.remove('张三')
    print('删除后',a)
    a[1]='陈七'
    print('修改后',a)
    
    copy

运行截图: 图片描述

  1. 编写程序,录入小组成员的姓氏,利用集合输出小组中的所有姓氏。
    a={'张','李','王'}
    print(a)
    
    copy

运行截图: 图片描述

  1. 编写程序,用一个变量存储组员名单,组员Python成绩,计算组员总人数,总分,平均分。
    socres={"张三":66,"李四":78,"王五":70,"陆六":80,"陈七":75}
    print(socres)
    a=len(socres)
    print("总人数:",a)
    b=sum(socres.values())
    print("总分:",b)
    c=sum(socres.values())/len(socres)
    print("平均分:",c)
    
    copy

运行截图: 图片描述

  1. 编写程序,用一个变量存储组员成绩,要求有低于60的成绩,利用列表推导式,筛选出低于60分的成绩。
    socres={"张三":54,"李四":78,"王五":59,"陆六":80,"陈七":75}
    print(socres)
    a=[i for i in socres.values() if i<60]
    print("低于60的成绩:",a)
    
    copy

运行截图: 图片描述

  1. 编写程序,利用列表推导式将列表中的整数提取出来[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

运行截图: 图片描述

  1. 利用生成器表达式生成0~9的数值,要求每一个数值乘以你的幸运数字,最后将生成器对象转换成列表,输出列表的结果。
    a=list(i*3 for i in range(10))
    print(a)
    
    copy

运行截图: 图片描述

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

运行截图: 图片描述

  1. 现有一购物车列表如下: 图片描述 要求通过用户输入总资产,例如:3000,然后显示购物车列表,计算购物车商品总金额,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
    carts=[{"name":"床", "price":1999, "num":1}, {"name":"枕头", "price":10,"num":2}, {"name":"被子", "price":20, "num":1}]
    money=int(input("余额:"))
    a=0
    for i in range(len(carts)):
    a=carts[i]['price']*carts[i]['num']+a
    print("商品总金额",a)
    if money>=a:
    print("购买成功")
    else:
    print("余额不足")
    
    copy

运行截图: 图片描述

五、实验小结

(包括问题和解决办法、心得体会、意见与建议等)

问题与解决办法:

  1. 问题:{}和[]以及()三个容易用错。

解决办法:通过查资料,知道了元组使用小括号 ( ),列表使用方括号 [ ]。集合使用{}。其中,集合{}中的元素使无序的,且不可改变。元组和列表都有顺序,但使元组的元素不可改变。

  1. 问题:使用生成器表达式生成值后,返回的是生成器对象,不知道如何转换为列表。

解决办法:查找资料,使用list可以转换成列表,用tuple() 函数可以转换成元组。

心得体会:python的语句很简单,但是用法很多,与c++也有很多的不同,for和if()else语句要加冒号,不注意就可能忘记,个人感觉python的逻辑性非常的强,同时,还需要用到很多如len(),range()等一些函数并且很方便,有一些复杂的就需要翻书找资料。

最新评论

题目内容正确、方法规范、格式工整美观,一至五个部分完整。

2023-03-27 16:31:45
回复