目录

  • 前言
    • ●  Python解释器安装
    • ●  PyCharm开发环境
  • Python程序设计实验
    • ●  实验1 IDLE与代码编写规范
    • ●  实验2 输入输出与数据类型
    • ●  实验3 字符串处理
    • ●  实验4 数据运算
    • ●  实验5 列表与元组应用
    • ●  实验6 字典与集合应用
    • ●  实验7 if语句与match语句
    • ●  实验8 使用循环语句
    • ●  实验9 异常处理
    • ●  实验10 函数应用
    • ●  实验11 类的应用
    • ●  实验12 模块应用
    • ●  实验13  应用re模块
    • ●  实验14 文件处理
    • ●  实验15 用户界面设计
    • ●  实验18 SQLite数据库应用
    • ●  理论考试模拟试题A
    • ●  理论考试模拟试题B
    • ●  理论考试模拟试题C
    • ●  理论考试模拟试题D
  • 学习参考
    • ●  01 Python及其IDLE环境
    • ●  02 Python代码规范
    • ●  03 常量和变量
    • ●  04 输入输出
    • ●  05 运算符
    • ●  06 数值类型
    • ●  07 字符串
    • ●  08 列表
    • ●  09 元组
    • ●  10 字典
    • ●  11 集合
    • ●  12 条件语句
    • ●  13 循环语句
    • ●  14 异常处理
    • ●  15 自定义函数
    • ●  16 内置函数
    • ●  17 模块导入与定义
    • ●  18 math模块
    • ●  19 os模块
    • ●  20 time模块
    • ●  21 random模块
    • ●  22 文本文件
    • ●  23 二进制文件
    • ●  24 类的创建和使用
    • ●  25 类的继承与多态
 实验5 列表与元组应用
教学视频:>>>



任务1 元组和列表的创建

以下代码的作用:输入字符串,利用空格将其切分为多个子串,输出最长的全部子串。请将代码中的 “<X>” 替换为适当的内容。

s=input("输入一个字符串:")

s=s.<X>( )    #切分为多个子串

m=<X>(s,key=<X>)  #找到最长子串

s=[a for a in s if <X>]  #搜索所有最长子串:

print(f"最长子串有:{<X>}") 

要求:

1、程序保存到:s5t1.py

2、程序执行效果:

输入一个字符串:aaa is bbb ddd an bb

最长子串有:aaa,bbb,ddd

【参考与提示】

1、max (a,key) : 求序列 a 的最大值.key 用于指定 a 的元素比较大小的依据 (函数或类名)。

2、split (s) : 为字符串的内置函数。利用 s 将字符串切分为子串组成的列表。

3、len (x) : 计算可迭代对象 x 的数据个数。

4、join (a) : 为字符串内置函数。将由字符串组成的序列 a 的元素连接为字符串。

 

任务2 列表和元组 - 索引与切片

要求:

1、程序运行时完成以下操作:

(1)接受键盘输入的整数 (为成绩,不少于 6 个整数) 串 s。

(2)将 s 转换为元组。

(3)输出前 3 名的成绩及这 3 个成绩的平均分 (四舍五入保留两位小数)。

2、程序保存到:s5t2.py

3、程序执行效果:

输入一个整数串:63,94,72,88,56,78,66

前三名=94,88,78  平均分=86.67

【参考与提示】

1、eval (s): 计算字符串 s 对应表达式的值。

2、sorted (a, key,reverse): 序列排序. key 指定排序依据;reverse指定升序还是降序。返回值为列表。

3、列表切片。得到降序排序后的列表 a后,前三名成绩的数据为 a [:3]。

4、平均分四舍五入保留两位小数:可以使用 round 函数。


任务3 列表内置函数的使用

根据注释将下面代码中的大写字母替换为适当的内容:

a=[67, 90, 85, 76, 36, 58, 70, 92]

s=input("输入整数串:")

b=eval(s)        #转换s为元组

a.A(b)             #b的元素添加到a

a.B(0, 85)        #将85添加为a的第1个元素

a.C(77)            #77添加到a最后

a.D(85)            #从a中删除一个元素85

a.E(4)                #删除元素a[4]

F a[3::3]            #删除a的部分元素

a.G((85, 93))    #将元组的元素添加到a

a.H( )                #将a逆序

m=a. I(93)        #得到元素93的索引位置

n=a. J(85)        #统计a中元素为85的数目

print(f"m={m}, n={n}")

要求:

1、除 F 外,其他大写字母需替换为列表的内置函数。

2、对输入的整数串不作有效性检查。

3、程序保存到:s5t3.py

4、程序执行效果:

输入整数串:65,85,79

m=0, n=3

【参考与提示】

列表常用内置函数有:remove,append,extend,pop,insert,index,reverse,count,sort。


任务4 元组应用

要求:

1、程序运行时完成以下操作:

(1)输入整数串(不少于 6 个整数)。

(2)将整数串转换为元素为整数的元组。

(3)分别统计元组奇数位和偶数位数据的平均值 (四舍五入保留 2 位小数) 并显示。

2、对输入的整数串不作有效性检查。

3、程序保存到:s5t4.py

4、程序执行效果:

输入整数串:32,71,26,45,80,63,92

奇数位均值 = 57.5,偶数位均值= 59.67

【参考与提示】

1、eval (s): 计算字符串 s 对应表达式的值。

2、round (x,n): 将数值 x 四舍五入保留到小数点后 n 位。

3、元组切片 a [x:y:z]。

4、sum (a,start):对可迭代对象 a 的元素求和.。start 指定和的初值。


任务5 元组和列表 - 相关函数的使用

要求:

1、程序运行时完成以下操作:

(1)接受键盘输入的矩阵并使用列表存储。

输入格式:逐行输入。行以 ";" 分隔,行内数据以 "," 分隔。参考程序执行效果。

(2)输出矩阵每行的最大值。

2、不检查输入数据的有效性。

3、程序保存到:s5t5.py

4、程序执行效果:

输入矩阵:1,8; 3,6; 5,9

各行最大值: 8,6,9

【参考与提示】

求解思路:

1、存储矩阵(设输入"1,8; 3,6; 5,9")。

(1)先使用字符串内置函数 split,得到矩阵的各行 (为字符串) 数据:

s=["1,8", "3,6","5,9"]

(2)将 s 的元素转换为元组。

使用列表推导式:a=[元素 for r in s]

可得:a=[(1, 8), (3, 6),(5, 9)]

2、使用列表推导式求每行最大值。

格式:[元素 for r in a]

可得:m=[8, 6, 9]

3、输出各行最大值。

(1)将 m 转换为字符串 s="[8, 6, 9]"。

(2)使用字符串的内置函数replace 删除全部空格:s="[8,6,9]"。

(3)输出 s,应不包括其首尾字符 (利用字符串的切片)。




要求:

1、程序运行时完成以下操作:

(1)接受键盘输入的矩阵并使用列表存储。

输入格式:逐行输入。行以 ";" 分隔,行内数据以 "," 分隔。参考程序执行效果。

(2)输出矩阵每列的最大值。

2、不检查输入数据的有效性。

3、程序保存到:s5t5.py

4、程序执行效果:

输入矩阵:1,8;3,6;5,9

各列最大值:5,9

【参考与提示】

求解思路:

1、存储矩阵(设输入"1,8;3,6;5,9")。

(1)先使用字符串内置函数 split,得到矩阵的各行 (为字符串) 数据:

s=["1,8", "3,6","5,9"]

(2)将 s 的元素转换为元组。

使用列表推导式:a=[元组 (for r in s)]

可得:a=[(1, 8), (3, 6), (5, 9)]

2、求每列的最大值。

(1)求矩阵行数 r (即 a 的元素个数)。

(2)求矩阵列数 c (即 a [0] 的元素个数)。

(3)利用推导式求每列的最大值。

格式:m=[max ([元素 for i in range (r)]) for j in range (c)]

其中 "元素" 是第 j 列的最大值。计算方法:

max ([v for i in range (r)])

其中 v 是第 i 行第 j 列的元素。

可得:m=[5, 9]

3、输出各列最大值。

(1)将 m 转换为字符串 s="[5, 9]"。

(2)使用字符串的内置函数replace 删除全部空格:s="[5,9]"。

(3)输出 s,应不包括其首尾字符 (利用字符串的切片)。