目录

  • 1 前言
    • 1.1  Python解释器安装
    • 1.2  PyCharm开发环境
  • 2 Python程序设计实验
    • 2.1  实验1 基本输入输出
    • 2.2  实验2 基本运算
    • 2.3  实验3 字符串处理
    • 2.4  实验4 列表与元组应用
    • 2.5  实验5 列表与元组应用
    • 2.6  实验6 字典与集合应用
    • 2.7  实验7 函数应用1
    • 2.8  实验8 函数应用2
    • 2.9  实验9 类的创建与应用
    • 2.10  实验10 模块应用
    • 2.11  实验11 文件操作
    • 2.12  实验12 异常处理
    • 2.13  实验13 使用正则表达式
    • 2.14  实验14 tkinter基础应用
  • 3 学习参考
    • 3.1  1 Python及其IDLE环境
    • 3.2  2 Python代码规范
    • 3.3  3 使用变量
    • 3.4  4 输入输出
    • 3.5  5 运算符
    • 3.6  6 字符串
    • 3.7  7 条件语句
    • 3.8  8 循环语句
    • 3.9  9 列表
    • 3.10  10 元组
    • 3.11  11 字典
    • 3.12  12 集合
    • 3.13  13 自定义函数
    • 3.14  14 内置函数
    • 3.15  15 类的创建和使用
    • 3.16  16 类的继承与多态
    • 3.17  17 time模块
    • 3.18  18 os模块
    • 3.19  19 random模块
    • 3.20  20 文件
    • 3.21  21 错误与异常处理
 实验4 列表与元组应用

任务1:计算序列的平均值

【任务描述】

输入不少于6个的整数,删除一个最小值、删除一个最大值,输出余下整数的平均值(四舍五入保留到小数点后2位)。程序保存到s4A.py。

程序执行效果:

输入整数序列:2,3,1,6,9,5,8

输出:avg=4.80

【操作提示】

1、得到整数序列的方法

使用input函数得到输入的整数序列(字符串)后,可以利用eval函数将其转换为元组。如:s="2,3,1,6",则eval(s)的值为(2,3,1,6)。

2、平均值的计算

有二个思路:

(1)使用sorted函数对元组排序,得到排序后的列表。再对列表切片a[1:-1]求和(使用sum函数)后再计算平均值。数值个数可由len函数得到。

(2)利用max函数和min函数得到元组的最大、最小值,再将元组的元素和(使用sum函数)减去最大、最小值后再计算平均值。


任务2:生肖推算

【任务描述】

输入你的出生农历,输出你的生肖(即属相)。程序保存到s4B.py。

程序运行效果:

输入你的出生农历:2013

你的生肖:蛇

【操作提示】

十二生肖是根据农历年按照子(鼠)、丑(牛)、寅(虎)、卯(兔)、辰(龙)、巳(蛇)、午(马)、未(羊)、申(猴)、酉(鸡)、戌(狗)、亥(猪)的顺序每十二年一循环。只要知道任意一年的生肖,即可推算出其他年的生肖。

求解思路:

1、将十二生肖保存到一个元组中:

a=("鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪")

2、2020年的生肖为"鼠"(在a的索引值为0),因此农历y年的生肖可根据y-2020除以12的余数推算出来。由于2020除以12的余数为4,因此,也可根据y-4除以12的余数推算出来。


任务3:推算日期是一年中的第几天

【任务描述】

输入日期,输出这一天是一年中的第几天。程序保存到s4C.py。

程序执行效果:

输入日期(年,月,日):2022,8,31

2022年8月31日是一年的第243天

【操作提示】

求解思路:

1、根据输入的字符串得到年月日数据(使用eval函数)y、m、d。

示例:s="2022,8,31",则y,m,d=eval(s)

2、利用列表存储1至11月中每月的天数:

a=[31,28,31,30,31,30,31,31,30,31,30]

3、如果是闰年,a[1]需修改为29。有二种修改方法:

(1)使用if表达式。示例:a[1]+=1 if A else 0。其中A为闰年条件。

(2)直接使用逻辑值。示例:a[1]+=A。其中A为闰年条件。

4、使用sum函数,计算m月前的各月天数的和s。

5、则s+d即为所求。


任务4:查找未重复的整数

【任务描述】

输入3个整数(其中有2个数相同),输出未重复的整数。程序保存到s4D.py。

程序执行效果:

输入3个整数:3,8,3

输出:整数8未重复

【操作提示】

1、利用eval函数可以将输入的全部整数(字符串)保存到一个元组s中。

2、查找未重复的整数有三个思路:

(1)利用if表达式(假定三个整数分别为x,y,z)

示例:m=x if y==z else (y if x==z else z)

(2)利用列表推导式

示例:(假定三个整数保存在元组a中)

b=[x for x in a if a.count(x)==1]

(3)利用异或运算

计算三个整数的异或(位运算),计算结果即为未重复的整数。这里利用了位的异或运算的4个性质:n^n=0;0^n=n;(a^b)^c=a^(b^c);a^b=b^a。


任务5:数值提取

【任务描述】

输入一个字符串,按原序输出这个字符串包含的全部整数,非数字字符均视为数据分隔符。程序保存到s4E.py。

程序运行效果:

输入字符串:aa23ui8puy90

输出:23,8,90

【操作提示】

基本思路:

1、利用列表递推式将字符串中的非数字部分替换为空格,得到列表。

例如:"uu16r8p"转换为列表[" "," ","1","6"," ","8"," "]。

2、使用字符串的内置函数join将列表元素连接成字符串:"  16 8 "。

3、使用字符串的内置函数split将"  16 8 "分割为列表:["16","8"]。

4、将列表元素连接成字符串后输出。