《Python程序设计与算法基础教程(第二版)》第十一章 算法与数据结构基础 上机实践

时间:2024-10-02 07:26:36

python实验七:

上机实践:11,12,13

11、参考例11.42,实现namedtuple对象应用程序,读取成绩文件的内容(学员、ID、语文、数学、外语和信息),显示学员ID和平均成绩。

自己写一个文本文件,再改为.csv格式:
在这里插入图片描述
在这里插入图片描述

from collections import *
import csv

Score = namedtuple('Score', 'name, id, chinese, math, english, computer')
print(" 学号   平均成绩")
for stu in map(Score._make, csv.reader(open("", encoding = 'utf-8'))):
    score_average = (float(stu.chinese) + float(stu.math) + float(stu.english) + float(stu.computer))/4
    print(stu.id, score_average)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在这里插入图片描述
12、创建由‘Monday’~‘Sunday’7个值组成的字典,输出键列表、值列表以及键值列表。

d = {1:'Monday', 2:'Tuesday', 3:'Wednesday', 4:'Thursday', 5:'Friday', 6:'Saturday', 7:'Sunday'}
for k in d.keys():
    print(k, end=' ')
print()
for v in d.values():
    print(v, end=' ')
print()
for i in d.items():
    print(i, end=' ')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
'
运行

在这里插入图片描述
13、随机生成10个0(包含)~10(包含)的整数,分别组成集合A和集合B,输出A和B的内容、长度、最大值、最小值以及它们的并集、交集和差集。

import random
def func():
    a = []
    for j in range(5):
        x = random.randint(1,10)
        a.append(x)
    return set(a)

A = func()
B = func()
print("集合的内容、长度、最大值、最小值分别为:")
print(A, len(A), max(A), min(A))
print(B, len(B), max(B), min(B))
print("A和B的并集、交集和差集分别为:")
print(A|B, A&B, A-B)   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
'
运行

在这里插入图片描述