Python 语言程序设计实验2023春季”实验报告一 序列结构

#实验报告一 序列结构

##一、实验学时: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. 编写程序,用一个变量存储以下信息:学号,姓名,所在学院,专业名称。
#程序名:main.py
#功 能:用一个变量存储学生的基本信息
#作 者:********
#学 号:********
#日 期:2023.3.6
#思 路:用列表a存储用户输入提示字,用for语句遍历列表a,
#      用input()函数实现对应信息的输入并存入字典b中,最后使用
#      print函数将字典b打印下来
a=['学号','姓名','所在学院','专业名称']#列表a中存入输入提示词
b={}#用于存储学生的基本信息
for i in a:
    b[i] = input('请输入{0}:'.format(i))#对学生各项信息进行输入
print(b)#输出学生的基本信息

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

#程序名:2.py
#功 能:将小组成员的姓名存入一个列表里
#作 者:********
#学 号:********
#日 期:2023.3.6
#思 路:先确定输入成员人数,在用for语句和input()对每个成员姓名
#      进行输入并存入列表s中,最后输出列表s
n=int(input("请输入小组人数:"))#输入小组人数
s=[]#存储小组成员姓名
for i in range(n):
    s.append(input("请输入成员姓名:"))#输入信息
print("成员的姓名分别为:",s)#输出成员姓名

运行截图:
图片描述

  1. 对组员名单进行操作,如增加一个同学,减少一个同学,修改一个同学的姓名。
#程序名:3.py
#功 能:实现对组员名单进行操作
#作 者:********
#学 号:********
#日 期:2023.3.6
#思 路:先录入原成员姓名,用while语句和if语句实现执行不同的操作
n=int (input("请输入小组人数:"))
s=[]
for i in range(n):
    s.append(input("请输入成员姓名:"))#输入原成员姓名
print(s)
while True:
    u=int(input("选择你要执行的操作:\n"
            "输入1增加一个同学\n"
            "输入2删除一个同学\n"
            "输入3修改一个同学的姓名\n"
            "输入0结束操作\n"))#输入不同的数,执行不同的操作
    if u==1:
        s.append(input("请输入要增加的同学的姓名:"))
        print("学生名单为:",s)#添加一个同学的姓名
    elif u==2:
        s.remove(input("请输入要删除的同学的姓名:"))
        print("学生名单为:",s)#删除一个同学的姓名
    elif u==3:
        v=s.index(input("请输入要修改的同学的名字:"))
        s[v]=input("修改为:")
        print("学生名单为:",s)#修改一个同学的姓名
    elif u==0:
        print("学生名单为:",s)
        break

运行截图:

图片描述

  1. 编写程序,录入小组成员的姓氏,利用集合输出小组中的所有姓氏。
#程序名:4.py
#功 能:录入小组成员的姓氏,利用集合输出小组中的所有姓氏
#作 者:********
#学 号:********
#日 期:2023.3.6
#思 路:录入小组成员的姓氏存入集合中,print()输出小组中的所有姓氏
s=set(input("请输入小组成员的姓氏:").split())#录入小组成员的姓氏存入集合中
print("小组成员的姓氏分别为:",s)#输出

运行截图:
图片描述

  1. 编写程序,用一个变量存储组员名单,组员Python成绩,计算组员总人数,总分,平均分。
#程序名:5.py
#功 能:用一个变量存储组员名单,组员Python成绩,计算组员总人数,总分,平均分。
#作 者:********
#学 号:********
#日 期:2023.3.6
#思 路:输入组员成绩,用len(),sum()函数求总人数和总成绩,在求得平均成绩
a=input("请输入小组成员姓名:").split()
b=[]
for i in a:
    b.append(int(input("请输入{}的成绩:".format(i))))#输入每个同学的成绩
print("小组人数为",len(a),"总分为:",sum(b),"平均分为:",sum(b)//len(b))#输出总人数,总成绩,平均成绩

运行截图:

图片描述

  1. 编写程序,用一个变量存储组员成绩,要求有低于60的成绩,利用列表推导式,筛选出低于60分的成绩。
#程序名:6.py
#功 能:筛选出低于60分的成绩。
#作 者:********
#学 号:********
#日 期:2023.3.6
#思 路:用列表推导式筛选出低于60分的成绩。
a=list(map(int,input("请输入学生的成绩").split()))#输入成绩
b=[i for i in a if i < 60]#筛选
print("低于60分的成绩有:",b)#输出

运行截图:
图片描述

  1. 编写程序,利用列表推导式将列表中的整数提取出来[123, ‘hello’, (1,2), 456, {23}, {‘a’:789}]。
#程序名:7.py
#功 能:将列表中的整数提取出来
#作 者:********
#学 号:********
#日 期:2023.3.6
#思 路:用列表推导式将列表中的整数提取出来
a=[123, 'hello', (1,2), 456, {23}, {'a':789}]
print([i for i in a if type(i)==int])#将列表中的整数提取出来

运行截图:
图片描述

  1. 利用生成器表达式生成0~9的数值,要求每一个数值乘以你的幸运数字,最后将生成器对象转换成列表,输出列表的结果。
#程序名:8.py
#功 能:用生成器生成符合条件的列表
#作 者:********
#学 号:********
#日 期:2023.3.6
#思 路:利用生成器表达式生成0~9的数值,每一个数乘以幸运数字,再转换成
#     列表并输出
a=int(input("请输入你的幸运数字:"))#输入幸运数字
g=(i*a for i in range(10))#生成器表达式生成数值
g=list(g)#转换成列表
print("生成的列表为:",g)

运行截图:

图片描述

  1. 给定一个列表member0 = [“今天”,“天气”,“真好”],要求通过insert()方法和切片两种方案,把列表member0变成member1 = [“今天”,“的”,“天气”,“是”,“真好”,“呀”]。
# 程序名:9.py
# 功 能:将列表member0变成为列表member1
# 作 者:********
# 学 号:********
# 日 期:2023.3.6
# 思 路:用insert()方法或切片操作实现将列表member0变成为列表member1
member0 = ["今天","天气","真好"]
print(member0)
member0.insert(1,'的')
member0.insert(3,'是')
member0.insert(5,'呀')#insert()方法插入三个字
print('insert()方法:',member0)#输出

member0 = ["今天","天气","真好"]
print(member0)
member0[1:1]=['的']
member0[3:3]=['是']
member0[5:5]=['呀']#切片操作插入三个字
print('切片方法:',member0)

运行截图:
图片描述

  1. 现有一购物车列表如下:
carts=[{"name":"床", "price":1999, "num":1}, {"name":"枕头", "price":10,"num":2}, {"name":"被子", "price":20, "num":1}]

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

#程序名:10.py
#功 能:判断是否有足够的资产清空购物车
#作 者:********
#学 号:********
#日 期:2023.3.6
#思 路:输入总资产,计算所需资金,用if判断输出结果
a=int(input("请输入总资产:"))
if a>=1999+2*10+20*1:
    print("购买成功")#如果总资产大于或等于所需资金则输出购买成功
else :
    print("账户余额不足")#否则输出账户余额不足

运行截图:
图片描述

##五、实验小结

问题与解决办法:

  1. 问题:编译出错,提示:SyntaxError: invalid syntax。

解决办法:判断语句的嵌套不能使用else if只能使用elif。

  1. 问题:不知道如何循环输入数据并执行判断操作。

解决办法:可以在此段程序前加上while(True)语句便可无限循环执行判断操作。

  1. 问题:不知道如何通过切片操作实现列表的插入。

解决办法:查找资料后得知,将冒号左右的参数设置成同一个下标即可实现。

  1. 问题:不知道如何实现一行数据输入。

解决办法:input()与split()函数结合使用即可实现。

心得体会:

  1. 多翻阅Python书籍有利于对语法的进一步掌握。

  2. 我们应当养成自主学习的习惯,提高自己搜索信息的能力,利用好网络带给我们的便利。

  3. 有自己难以解决的问题,要积极向老师同学请教。

  4. Python学习需要不仅需要扎实的语法基础,还需要充足的实践。在这里插入代码片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值