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

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

实验报告:python序列结构

班级:软件22- 5 姓名:陈恒伟

一. 实验目的:

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

二. 实验内容:

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

"""功能:用一个变量存储以下信息:学号,姓名,所在学院,专业名称
时间:2023-3-5
作者:陈恒伟"""
#!/usr/bin/env python3
information = {"学号":"12345", "姓名":"小明", "学院":"软件学院", "专业":"软件工程"}
copy

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

"""功能:用一个变量存储以下信息:学号,姓名,所在学院,专业名称
时间:2023-3-5
作者:陈恒伟"""
#!/usr/bin/env python3
namelist = ["小明", "小红", "小刚", "小蓝", "小花"]
print(namelist)
copy

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

"""功能:用一个变量存储以下信息:学号,姓名,所在学院,专业名称
时间:2023-3-5
作者:陈恒伟"""
#!/usr/bin/env python3
#增加
namelist = ["小明", "小红", "小刚", "小蓝", "小花"]
print(namelist)
add = ["小芬"]
namelist += add
print(namelist)
#减少
del namelist[2]
print(namelist)
#修改
namelist[2] = "小坤"
print(namelist)
copy

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

"""功能:用一个变量存储以下信息:学号,姓名,所在学院,专业名称
时间:2023-3-5
作者:陈恒伟"""
#!/usr/bin/env python3
name = set(input("请输入小组成员的姓氏:"))
print(name)
copy

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

"""功能:用一个变量存储以下信息:学号,姓名,所在学院,专业名称
时间:2023-3-5
作者:陈恒伟"""
#!/usr/bin/env python3
reportCard = {"小明" : 92 , "小红" : 96, "小刚" : 89 , "小花" : 77 }
people = len(reportCard) #计算成员总人数
total = 0
for name ,score in reportCard.items():
    total += score
print("成员总人数为:{}".format(len(reportCard)))
print("总成绩为:{}".format(total))
print("平均分为:{}".format(total / len(reportCard)))
copy

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

"""功能:用一个变量存储以下信息:学号,姓名,所在学院,专业名称
时间:2023-3-5
作者:陈恒伟"""
#!/usr/bin/env python3
score = ['30', '40', '50', '70', '80', '99']
score = list(map(int, score))
score = [i for i in score if i < 60]
print(score)
copy
7.编写程序,利用列表推导式将列表中的整数提取出来[123, 'hello', (1,2), 456, {23}, {'a':789}]
"""功能:用一个变量存储以下信息:学号,姓名,所在学院,专业名称
时间:2023-3-5
作者:陈恒伟"""
#!/usr/bin/env python3
number = [123, 'hello', (1,2), 456, {23}, {'a':789}]
number_is = [i for i in number if type(i) == int]
print(number_is)
copy

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

"""功能:用一个变量存储以下信息:学号,姓名,所在学院,专业名称
时间:2023-3-5
作者:陈恒伟"""
#!/usr/bin/env python3
number = [x*6 for x in range(10)]
print(number)
copy

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

"""功能:用一个变量存储以下信息:学号,姓名,所在学院,专业名称
时间:2023-3-5
作者:陈恒伟"""
#!/usr/bin/env python3
member0 = ['今天', '天气', '真好']
member1 = ['的', '是', '呀']
j = 0
#insert()方法
for i in range(1,5):
    if i % 2 != 0:
        member0.insert(i,member1[j])
print(member0)
#切片方法
'''member0[len(member0):] = []
member0[len(member0):] = []
for i in range(1,5):
    if i % 2 !=0:
        member0[i:i] = member1[j]
        j += 1 
copy

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

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

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

"""功能:用户通过输入总资产,然后显示购物车列表,计算购物车商品总金额,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。**
时间:2023-3-5
作者:陈恒伟"""
#!/usr/bin/env python3
carts=[{"name":"床", "price":1999, "num":1},\#续航符
{"name":"枕头", "price":10,"num":2}, {"name":"被子", "price":20, "num":1}]
money = int(input("Please enter a number:"))
total = 0
print(carts)
for i in range(len(carts)):
    total += carts[i]["price"] * carts[i]["num"]
if money > total:
    print("购买成功")
else:
    print("抱歉,余额不足;还差:{}元".format(total - money))
copy

三.实验步骤及结果(在此部分列出解题思路、程序代码和运行结果截图。请注意保持格式规范统一,截图清晰,大小合适)

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

运行结果:

http://m.qpic.cn/psc?/V13kzOL42c4hvL/ruAMsa53pVQWN7FLK88i5mH9oyAZ9zOcCCE7*bWpuFatPqdIww2AL47X3g*jHBAEqYd74ZTs8IA33xn9uH9ZIFPTlPfUbH7L9B*MTxZoZ.M!/b&bo=7wbeAAAAAAADFwU!&rf=viewer_4

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

运行结果:

http://m.qpic.cn/psc?/V13kzOL42c4hvL/ruAMsa53pVQWN7FLK88i5gFI7Y4dzibkXotJ93Qgtn.Pleu7BOxMg1Oo3EBxK*imDKbH2JKKc2uZWwBXx6yo560Fiee9eYMh8m26oGLphlc!/b&bo=7gJbAAAAAAADF4U!&rf=viewer_4

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

运行结果:

http://m.qpic.cn/psc?/V13kzOL42c4hvL/ruAMsa53pVQWN7FLK88i5gFI7Y4dzibkXotJ93Qgtn.*7fBot8yxwfVTsGfrz4oUBLzJ0ePC4cejo8nssgidUpy*nPmO8U8unfm2UaIU1yY!/b&bo=ZAPWAAAAAAADF4M!&rf=viewer_4

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

运行结果:

http://m.qpic.cn/psc?/V13kzOL42c4hvL/ruAMsa53pVQWN7FLK88i5gFI7Y4dzibkXotJ93Qgtn.ODVQD2s.KqPgE*4rytvT.S3G*VFod.jB.T*hUGpOMo6ckZL10I11f73**0Vv1vU4!/b&bo=EwKbAAAAAAADF7g!&rf=viewer_4

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

运行结果:

http://m.qpic.cn/psc?/V13kzOL42c4hvL/ruAMsa53pVQWN7FLK88i5gFI7Y4dzibkXotJ93Qgtn.LFMglzFtdv.LmeNqM.zzIVSmF6qglzOpfqQaaOUFTpDMKMhfdvAmWxaJIK0TYX2c!/b&bo=YQHFAAAAAAADF5c!&rf=viewer_4

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

运行结果:

http://m.qpic.cn/psc?/V13kzOL42c4hvL/ruAMsa53pVQWN7FLK88i5lOUSuy6XWNjiiKHCwPbTr1BQ7KU2UWnJdUV7urKbhv0nMAPrMTbnfwnltqSwl6M8prhpDtNrbgUFSsqT3i3XQg!/b&bo=YwFwAAAAAAADFyA!&rf=viewer_4

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

运行结果:

http://m.qpic.cn/psc?/V13kzOL42c4hvL/ruAMsa53pVQWN7FLK88i5lOUSuy6XWNjiiKHCwPbTr2WKbeaKaEG85f6FqOm3mEKWL4MS5nO6AXCGw0xJwYMbKvLC7YibPfE0Jv0sHqtXYM!/b&bo=eAFgAAAAAAADFys!&rf=viewer_4

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

运行结果:

http://m.qpic.cn/psc?/V13kzOL42c4hvL/ruAMsa53pVQWN7FLK88i5lOUSuy6XWNjiiKHCwPbTr2Ig4a3LGBBSKz9qX8S082qQzKo.vyVs7c*P8dNmOXkiyRPmYwlRV5SK720lyjxF*o!/b&bo=mQJbAAAAAAADF*I!&rf=viewer_4

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

运行结果:

http://m.qpic.cn/psc?/V13kzOL42c4hvL/ruAMsa53pVQWN7FLK88i5lOUSuy6XWNjiiKHCwPbTr3MaX3tY7eLIhjtCYzE*3.JXQr52UZhdqqNt*C.aw7P2HFide0Jhs8e5k70jC0gOj0!/b&bo=hQJgAAAAAAADF9U!&rf=viewer_4

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

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

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

运行结果:

http://m.qpic.cn/psc?/V13kzOL42c4hvL/ruAMsa53pVQWN7FLK88i5mH9oyAZ9zOcCCE7*bWpuFZ0yC2zszW1CazFaXTzI776BbaVQMaqiszV7dWyXdM8rpcvt3ST7*kfQG2q1sXUvPk!/b&bo=fwIJAQAAAAADF0c!&rf=viewer_4

四.实验小结(包括问题和解决办法、心得体会、意见与建议等)问题与解决办法:心得体会:

问题与解决办法:

问题:
  1. 最初编写第一题(用一个变量存储以下信息:学号,姓名,所在学院,专业名称)想用列表,结果出现:"TypeError: list expected at most 1 argument, got 4"

  2. 编写第六题(编写程序,用一个变量存储组员成绩,要求有低于60的成绩,利用列表推导式,筛选出低于60分的成绩)时出现:“TypeError: '<' not supported between instances of 'str' and 'int'

  3. 编写第九题(给定一个列表member0 = ["今天","天气","真好"],要求通过insert()方法和切片两种方案,把列表member0变成member1 =["今天","的","天气","是","真好","呀"])时出现:SyntaxError: expected ":"

解决办法:
  1. 第一题是我定义列表时出的错,应该直接使用"[]",而list()的方法适用于将元组或range()等转换为列表;改正后,问题消失。

  2. 第六题:未将列表中的字符串型转换为int型就直接使用它与另一个int发生计算关系,应先将其转换为int型例如使用map(int,列表);改正后,问题消失。

  3. 第三题在编写循环语句时漏写了":",后续加入”:“后问题消失。

    心得体会:

    这次试验让我更加熟悉和了解了Python的列表、元组、字典、集合等用法,熟悉了列表推导式和生成器的基本写法与用法,以及切片和序列解包等基本操作,我也发现了我的 许多不足,如在一些较为复杂的逻辑上容易混淆因果,对于一些概念不清楚,需要翻书才能明白,敲打代码不熟练,需要经常查阅和纠正等问题,不过这也让我找到了方向,我需要在未来的学习当中不断的练习,概念问题也应该记牢巩固,平时多看看书籍以及网上的资料,多加练习一定可以熟练起来的。

图片描述

最新评论

第9题有误。

2023-03-09 23:27:55
回复