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

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

姓名:邹树山
班级:软件22-20

实验报告一 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()insert()方法和切片两种方案,把列表member0变成member1 = ["今天","的","天气","是","真好","呀"]。
  10. 现有一购物车列表如下:

carts=[{"name":"床", "price":1999, "num":1}, {"name":"枕头", "price":10,"num":2}, {"name":"被子", "price":20, "num":1}] copy 要求通过用户输入总资产,例如:30003000,然后显示购物车列表,计算购物车商品总金额,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。

四、实验结果

  1. 编写程序,用一个变量存储以下信息:学号,姓名,所在学院,专业名称。
    x=[66,'张三','软件学院','软件工程']
    print(x)
    
    copy
    运行结果截图:图片描述
  2. 编写程序,用一个变量存储你所在小组的组员名单。
x=['张三','李四','王五']
print(x)
copy

图片描述

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

运行结果截图:图片描述 4. 编写程序,录入小组成员的姓氏,利用集合输出小组中的所有姓氏。

x=['张三','李华','王刚']
y=[i[0] for i in x]
z=set(y)
print("小组成员的姓氏为:")
print(z)
copy

运行结果截图:图片描述 5. 编写程序,用一个变量存储组员名单,组员Python成绩,计算组员总人数,总分,平均分。

import math
name=['张三','李四','王五']
score=[96,97,98]
n=len(name)
print('总人数为:',n)
total=0
for i in score:
    total+=i
print('总分为:',total)
pingjun=total/n
print('平均分为:',pingjun)
copy

运行结果截图:图片描述 6. 编写程序,用一个变量存储组员成绩,要求有低于60的成绩,利用列表推导式,筛选出低于60分的成绩。

score=[30,58,96,97,98]
for i in score:
    if i<60:
        print(i)
score2=[29,35,90,92,99]
list1=[x for x in score2 if x<60]
print(list1)
copy

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

list1=[123,'hello',(1,2),456,{23},{'a':789}]
list2=[x for x in list1 if isinstance(x,int)]
print("列表中的整数为:")
print(list2)
copy

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

#幸运数字为5
range(10)
x=list(range(10))
print(x)
x=[i*5 for i in x]
print("改变后的列表为:")
print(x)
copy

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

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}]
zongjine=1999*1+10*2+20*1
print("购物车商品总金额为:",zongjine)
print("请输入总资产:")
a=input()
a=int(a)
print("总资产为:",a)
if a<zongjine:
    print("账户余额不足!")
else:
    print("恭喜您购买成功!")
copy

运行结果截图:图片描述

五、实验小结

问题与解决办法:

  1. 问题:用input进行手动输入时无法进行

解决办法:查阅书籍得知,input()函数的返回值都是字符串,若想手动输入数字,要按需转化为相应的类型。

  1. 问题:对于列表推导式不熟悉

解决办法:在b站观看相关教学视频,得以较为熟练的掌握和使用。

  1. 问题:不知如何提取列表中的某些带限定的元素

解决办法:通过查阅CSDN得知,可以使用Python中的一个内置函数即isinstance()函数来判断一个函数是否是一个已知的类型。具体语法isinstance(object,classinfo),例如a=2 isinstance(a,int)#结果返回TRUE,若int改为str,则返回FALSE

心得体会: 第一次接触Python,对于其中一些基本语法还是不够熟悉,以及不能熟练运用Python中众多的内置函数,对于书本上的知识点必须要熟记于心,有些代码得上机敲才能深刻理解。

最新评论

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

2023-03-27 15:42:29
回复