实验报告一 Python序列结构
一、实验学时:2学时
二、实验目的
- 掌握:Python常用内置对象-列表、元组、字典、集合。
- 掌握运算符和内置函数对列表、元组、字典、集合的操作。
- 理解列表推导式、生成器表达式的工作原理。
- 掌握切片操作。
- 掌握序列解包的用法。
三、实验目的
-
编写程序,用一个变量存储以下信息:学号,姓名,所在学院,专业名称。
-
编写程序,用一个变量存储你所在小组的组员名单。
-
对组员名单进行操作,如增加一个同学,减少一个同学,修改一个同学的姓名。
-
编写程序,录入小组成员的姓氏,利用集合输出小组中的所有姓氏。
-
编写程序,用一个变量存储组员名单,组员Python成绩,计算组员总人数,总分,平均分。
-
编写程序,用一个变量存储组员成绩,要求有低于60的成绩,利用列表推导式,筛选出低于60分的成绩。
-
编写程序,利用列表推导式将列表中的整数提取出来
[123, 'hello', (1,2), 456, {23}, {'a':789}]
。 -
利用生成器表达式生成0~9的数值,要求每一个数值乘以你的幸运数字,最后将生成器对象转换成列表,输出列表的结果。
-
给定一个列表
member0 = ["今天","天气","真好"]
,要求通过insert()方法和切片两种方案,把列表member0
变成member1 = ["今天","的","天气","是","真好","呀"]
。 -
现有一购物车列表如下:
carts=[{"name":"床", "price":1999, "num":1}, {"name":"枕头", "price":10,"num":2}, {"name":"被子", "price":20, "num":1}]
要求通过用户输入总资产,例如:3000,然后显示购物车列表,计算购物车商品总金额,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
四、实验结果
(在此部分列出保持缩进格式的程序代码及运行结果截图,请注意保持格式统一,截图清晰,大小合适)
-
编写程序,用一个变量存储以下信息:学号,姓名,所在学院,专业名称。
代码块:
#程序名:test1.1 #功 能:编写程序,用一个变量存储以下信息:学号,姓名,所在学院,专业名称。 #作 者:xx #日 期:2023.3.2 #思 路:利用列表存储输出即可 # 列表存储信息 alist = [{'2022250xxxx','李华','软件学院','软件工程专业'}] print(alist)
运行结果截图:
-
编写程序,用一个变量存储你所在小组的组员名单。
代码块:
#程序名:test1.2 #功 能:编写程序,用一个变量存储你所在小组的组员名单。 #作 者:xx #日 期:2023.3.2 #思 路:利用列表存储,输出即可 group = ["张三","李四","王五","赵六"] print(group)
运行结果截图:
-
对组员名单进行操作,如增加一个同学,减少一个同学,修改一个同学的姓名。
代码块:
#程序名:test1.3 #功 能:对组员名单进行操作,如增加一个同学,减少一个同学,修改一个同学的姓名。 #作 者:xx #日 期:2023.3.2 #思 路:利用列表的del,append函数操作即可 group = ["张三","李四","王五","赵六"] # 增加同学 group.append("李华") #删除姓名 del group[2] #更改姓名 group[0] = "Alice" # 输出小组 print(group)
运行结果截图:
-
编写程序,录入小组成员的姓氏,利用集合输出小组中的所有姓氏。
代码块:
#程序名:test1.4 #功 能:编写程序,录入小组成员的姓氏,利用集合输出小组中的所有姓氏。 #作 者:xx #日 期:2023.3.2 #思 路:利用split()函数用分隔符对字符串进行切片,然后遍历输出即可 name = input("请输入小组成员的姓氏:") # 利用split()函数分隔 name_set = (name.split()) print("小组成员姓氏有:") for i in name_set: print(i,end = ' ')
运行结果截图:
-
编写程序,用一个变量存储组员名单,组员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)))
运行结果截图:
-
编写程序,用一个变量存储组员成绩,要求有低于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)
运行结果截图:
-
编写程序,利用列表推导式将列表中的整数提取出来
[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)
运行结果截图:
-
利用生成器表达式生成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 = ' ')
运行结果截图:
-
给定一个列表
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)
运行结果截图:
-
现有一购物车列表如下:
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)
运行结果截图:
文章来源:https://www.toymoban.com/news/detail-760017.html
五、实验小结
(包括问题和解决办法、心得体会、意见与建议等)文章来源地址https://www.toymoban.com/news/detail-760017.html
问题和解决方法:
- 问题:在列表和集合字典的嵌套中,不知道如何获得values()的值
解决方法:上网查询后,在嵌套中利用list[i].get(key)函数获取即可。 - 问题:列表表达式和生成器表达式分不清
解决方法:查阅资料后,列表表达式采用方括号,生成器表达式是圆括号。 - 问题:不知道如何将一个字符串分割
解决方法:查询资料并询问同学后,利用split()函数对字符串进行分隔。
心得体会:
- Python有许多的内置函数,运用内置函数可以很好的帮助程序运行。
- python的注释非常重要,另外列表字典集合可以互相嵌套,极大丰富了数据存储的方式。
- python学习要结合书本和其他资料,并且要多敲代码。
到了这里,关于python 实验报告一 Python序列结构的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!