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

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

实验报告一 Python序列结构

班级:软件22-20 姓名:孟辰扬

一、实验目的

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

二、实验内容

1.编写程序,用一个变量存储以下信息:学号,姓名,所在学院,专业名称。 2.编写程序,用一个变量存储你所在小组的组员名单。 3.对组员名单进行操作,如增加一个同学,减少一个同学,修改一个同学的姓名。 4.编写程序,录入小组成员的姓氏,利用集合输出小组中的所有姓氏。 5.编写程序,用一个变量存储组员名单,组员Python成绩,计算组员总人数,总分,平均分。 6.编写程序,用一个变量存储组员成绩,要求有低于6060的成绩,利用列表推导式,筛选出低于6060分的成绩。 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}]

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

三、实验结果

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

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

x = {"学号":20222501600,"姓名:":'Mike',"学院:":'computer science college',"专业":'computer science'}
for i in x:
    print(i)
copy

运行结果:

image-20230304224537963

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

x = {1 : 'mike', 2 : 'james', 3 : 'jenny'}
for i in x:
    print(x[i])
copy

运行结果:

image-20230304224651112

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

x = ['mike', 'jenny', 'tom']
str = input()
#增加新同学
x.append(str)
for i in x:
    print(i,end = ' ')
    
print()
print()
#删除同学信息
print("Please enter the first piece of data you want to delete")
del x[int(input())]
print(x)

print()
print()
#修改同学姓名
print("Please enter the name you want to modify")
num = x.index(input())
print('Modify the content')
x[num] = input()
for i in x:
    print(i, end = ' ')
copy

运行结果:

image-20230304225023595

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

n = int(input())
s = set()
for i in range(n):
    s.add(input())

for i in s:
    print(i , end = ' ')
copy

运行结果:

image-20230304225619609

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

class student:
    name = '0'
    score = 0
    def __init__(self, name, score):
        self.name = name
        self.score = score

s = set()

def TotalNum():
    sum = 0
    for i in s:
        sum = sum + 1
    return sum

def TotalScore():
    sum = 0
    for i in s:
        sum = i.score + sum
    return sum

n = int(input())

for i in range(n):
    print("please input student's information:")
    a = student(input(), int(input()))
    s.add(a)

print("the total number is:", TotalNum())

print("the average score is:", TotalScore() / TotalNum())

print("the total score is:", TotalScore())

copy

运行结果:

image-20230304233350492

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

x = {'tom':60, 'sam':50, 'iron':99990}

s = [i for i in x.values() if i < 60]

print(s)
copy

运行结果:

image-20230306204500080

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

x = [123, 'hello', (1,2), 456, {23}, {'a':789}]

res = set()

def func():
    for i in x:
        if type(i) == int:
            res.add(i)
            
        if type(i) == tuple:
            for j in i:
                if type(j) == int:
                    res.add(j)
        if type(i) == set:
            for j in i:
                if type(j) == int:
                    res.add(j)
                    
        if type(i) == dict:
            for j in i.values():
                if(type(j) == int):
                    res.add(j)
    
func()                    
s = [i for i in res]
print(s)
copy

运行结果:

image-20230306205316130

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

lucky = 6
import random
x = (random.randint(1,10) for i in range(10))

s = [i for i in x]

for i in s:
    print(i * lucky, end = ' ')
copy

运行结果:

image-20230306205955280

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

member0 = ["今天","天气","真好"]
member0.insert(1,"的")
member0.insert(3,"是")
member0.insert(4,"啊")
print(member0)
copy

运行结果:

image-20230306210318001

member0 = ["今天","天气","真好"]
member0[1:1] = "的"
member0[3:3] = "是"
member0[4:4] = "啊"
print(member0)
copy

运行结果:

image-20230306210625864

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

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

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

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

print(carts)
def func():
    sum = 0
    for i in carts:
       sum = sum + i["num"] * i["price"]
       
    return sum
    
asset = int(input())
if asset >= func():
    print("购买成功")
else:
    print("钱不够")
copy

运行结果:

image-20230306211529458

四、实验小结

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

问题与解决办法:

Python掌握不够熟练 查询菜鸟教程解决

心得体会:

还是要多学多交流多问

最新评论

题目完成情况较好,代码正确、运行结果截图上传错误,方法正确。

2023-03-27 15:44:43
回复