python 实验报告一 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}]
    

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

四、实验结果

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

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

    代码块:
    #程序名:test1.1
    #功 能:编写程序,用一个变量存储以下信息:学号,姓名,所在学院,专业名称。
    #作 者:xx
    #日 期:2023.3.2
    #思 路:利用列表存储输出即可
    
    # 列表存储信息
    alist = [{'2022250xxxx','李华','软件学院','软件工程专业'}]
    
    print(alist)
    
    
    运行结果截图:

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

    代码块:
    #程序名:test1.2
    #功 能:编写程序,用一个变量存储你所在小组的组员名单。
    #作 者:xx
    #日 期:2023.3.2
    #思 路:利用列表存储,输出即可
    
    group = ["张三","李四","王五","赵六"]
    
    print(group)
    
    
    运行结果截图:

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

    代码块:
    #程序名:test1.3
    #功 能:对组员名单进行操作,如增加一个同学,减少一个同学,修改一个同学的姓名。
    #作 者:xx
    #日 期:2023.3.2
    #思 路:利用列表的del,append函数操作即可
    
    group = ["张三","李四","王五","赵六"]
    # 增加同学 
    group.append("李华")
    
    #删除姓名
    del group[2]
    
    #更改姓名
    group[0] = "Alice"
    
    # 输出小组
    print(group)
    
    运行结果截图:

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

    代码块:
    #程序名:test1.4
    #功 能:编写程序,录入小组成员的姓氏,利用集合输出小组中的所有姓氏。
    #作 者:xx
    #日 期:2023.3.2
    #思 路:利用split()函数用分隔符对字符串进行切片,然后遍历输出即可
    
    name = input("请输入小组成员的姓氏:")
    
    # 利用split()函数分隔
    name_set = (name.split())
    print("小组成员姓氏有:")
    for i in name_set:
        print(i,end = ' ')
    
    
    运行结果截图:

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

    代码块:
    #程序名:test1.5
    #功 能:编写程序用一个变量存储组员名单,组员Python成绩,计算组员总人数,总分,平均分。
    #作 者:xx
    #日 期:2023.3.2
    #思 路:利用字典和zip()函数计算字典中value()的和计算即可
    name = {"张三","李四","王五","赵六"}
    score = {80,90,85,95}
    
    s = dict(zip(name,score))
    
    print("组员总人数为:",len(s))
    
    # sum函数计算总分
    print("组员总分为:",sum(s.values()))
    
    # 计算平均分
    print("组内平均分为:%0.3f" % (sum(s.values())/len(s)))
    
    运行结果截图:

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

    代码块:
    #程序名:test1.6
    #功 能:编写程序,用一个变量存储组员成绩,要求有低于60的成绩,利用列表推导式,筛选出低于60分的成绩。
    #作 者:xx
    #日 期:2023.3.2
    #思 路:利用字典和zip()函数,计算字典中value(),遍历即可
    name = {"丽华","詹尼","Alice"}
    score = {70,50,40}
    
    # 利用zip()函数组合
    s = dict(zip(name,score))
    
    # 利用values()函数取值
    garde = list(s.values())
    score2 = [i for i in garde if i < 60]
    
    print("低于60分的成绩有:",score2)
    
    运行结果截图:

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

    代码块:
    #程序名:test1.7
    #功 能:编写程序,利用列表推导式将列表中的整数提取出来`[123, 'hello', (1,2), 456, {23}, {'a':789}]`。
    #作 者:xx
    #日 期:2023.3.2
    #思 路:通过列表推导式判断类型是否为整数即可
    
    lista = [123, 'hello', (1,2), 456, {23}, {'a':789}]
    
    # 创建空表
    x = []
    
    # 提取整数
    x = [i for i in lista if type(i) == type(1)]
    
    print("提取后整数为:",x)
    
    
    运行结果截图:

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

    代码块:
    #程序名:test1.8
    #功 能:利用生成器表达式生成0~9的数值,要求每一个数值乘以你的幸运数字,最后将生成器对象转换成列表,输出列表的结果。
    #作 者:xx
    #日 期:2023.3.2
    #思 路:利用range()函数生成0到9的元组,再通过类型转换成list,然后遍历输出即可
    
    # 生成器表达式
    g = (i for i in range(10))
    
    # 输入幸运数字x
    x = int(input("请输入幸运数字:"))
    
    #转换成列表
    lista = list(g)
    
    for i in lista:
        print(i * x,end = ' ')
    
    
    运行结果截图:

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

    代码块:
    #程序名:test1.9
    #功 能:.给定一个列表member0 = ["今天","天气","真好"],要求通过insert()方法和切片两种方案,把列表member0变成member1 = ["今天","的","天气","是","真好","呀"]。
    #作 者:xx
    #日 期:2023.3.2
    #思 路:通过切片对列表进行增删改即可
    member0 = ["今天","天气","真好"]
    
    # 切片操作
    member1 = member0[::]
    
    # insert()方法
    member0.insert(1,"的")
    member0.insert(3,"是")
    member0.insert(5,"呀")
    print("insert()方法",member0)
    
    # 切片操作
    member1.insert(1,"的")
    member1.insert(3,"是")
    member1.insert(5,"呀")
    print("切片操作",member1)
    
    运行结果截图:

  5. 现有一购物车列表如下:

carts=[{"name":"床", "price":1999, "num":1}, {"name":"枕头", "price":10,"num":2}, {"name":"被子", "price":20, "num":1}]

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

代码块:
#程序名:test1.10
#功 能:判断购物车商品总额和余额的关系
#作 者:李华
#作 者:xx
#日 期:2023.3.2
#思 路:利用get()函数访问集合中的元素,然后相乘,比较输出即可
# 购物车carts=[{"name":"床", "price":1999, "num":1}, {"name":"枕头", "price":10,"num":2}, {"name":"被子", "price":20, "num":1}]

carts = [{"name":"床", "price":1999, "num":1}, {"name":"枕头", "price":10,"num":2}, {"name":"被子", "price":20, "num":1}]
balance = int(input("请输入账户余额:"))

print(carts)

# 商品总额
sum_price = 0

# 利用get()函数访问集合中的值
for i in range(len(carts)):
    sum_price += carts[i].get('price') * carts[i].get('num')	

if sum_price <= balance:
    print("购买成功")
else:
    print("余额不足")

print("商品总额为:",sum_price)

运行结果截图:

五、实验小结

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

问题和解决方法:
  1. 问题:在列表和集合字典的嵌套中,不知道如何获得values()的值
    解决方法:上网查询后,在嵌套中利用list[i].get(key)函数获取即可。
  2. 问题:列表表达式和生成器表达式分不清
    解决方法:查阅资料后,列表表达式采用方括号,生成器表达式是圆括号。
  3. 问题:不知道如何将一个字符串分割
    解决方法:查询资料并询问同学后,利用split()函数对字符串进行分隔。
心得体会:
  1. Python有许多的内置函数,运用内置函数可以很好的帮助程序运行。
  2. python的注释非常重要,另外列表字典集合可以互相嵌套,极大丰富了数据存储的方式。
  3. python学习要结合书本和其他资料,并且要多敲代码。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
扎眼的阳光的头像扎眼的阳光普通用户
上一篇 2023年11月14日
下一篇 2023年11月14日

相关推荐