5月15日
上午做了python实验和工程数学实验
【实验编号】
【实验专责】
刘立嘉;
【实验目的】
使学生熟悉 Python 环境的安装与配置,熟悉 Python 解释器的使用。
使学生掌握 Python 控制语句、函数结构等的基本语法知识和使用。
使学生掌握 Python 的基本数据类型、列表、元组、字典和集合等的基本应用。
【实验环境】
所需硬件环境为微机;
所需软件环境为 Pyhton 3.x 等;
【实验准备】
掌握 Python 控制语句和函数结构等基本语法知识;
掌握 Python 的输入输出;
掌握 Python 的基本数据类型、列表、元组、字典和集合等;
【实验学时】
4 学时;
【实验内容】
练习安装 Python 解释器和 Python 编程环境;
练习安装 Python 扩展库;
练习 Python 简单程序设计;
撰写实验报告、实验自评及心得体会;
【实验过程】
(一)、练习安装 Python 解释器(现场练习)
【实验步骤】
1、打开 Python 官方网站 http://www.python.org。
2、下载 Python 3.5.x 或 Python 3.6.x 或 Python 3.7.x,至少安装其中两个。Python 程序设计
3、在开始菜单中找到成功安装的 IDLE,输入下面的代码,确保 IDLE 运行正常。
【检查标准】现场抽查
(二)、练习搭建 Python+Eclipse+pydev 编程环境(现场练习)
【实验要求】
查找资料,或参考 Python+Eclipse+Pydev 环境搭建.pdf,练习在 Eclipse 环境中安装
Pydev 插件搭建并配置 Python+Eclipse+Pydev 编程环境。
【检查标准】现场抽查
(三)、练习安装 Python 扩展库(现场练习)
【实验步骤】
1、在资源管理器中进入 Python 安装目录的 scripts 子目录,然后按下 Shift 键,在空
白处单击鼠标右键,在弹出来的菜单中选择“在此处打开命令窗口”进入命令提示符环境。
如图所示:
2、使用 pip 命令在线安装 Python 扩展库 numpy、pandas、scipy、matplotlib、jieba、
openpyxl、pillow。安装 openpyxl 的命令如图所示:
石家庄铁道大学 信息学院 刘立嘉
2Python 程序设计
石家庄铁道大学 信息学院 刘立嘉
3
3、如果遇到安装不成功的扩展库,使用浏览器打开下面的网址下载 whl 文件进行离线
安装:https://www.lfd.uci.edu/~gohlke/pythonlibs/
4、在 IDLE 中使用 import 导入安装好的扩展库,验证是否安装成功.
【检查标准】现场抽查
(四)、【Python0002】排列组合序列(写到实验报告中)
【题目描述】
用户输入整数 n(1<=n<=26)和整数 m(m<=n),然后输入 n 个不同的字母,请编写
程序输出在这 n 个字母中选择 m 个字母的所有排列序列和组合序列。
【练习要求】
请给出源代码程序和运行测试结果,源代码程序要求添加必要的注释。
【输入格式】
在第一行中输入整数 n 和整数 m 的值,数据之间以空格为间隔。
在第二行中输入 n 个不同字母,数据之间以空格为间隔
【输出格式】
首先输出所有的排列数列,每种情况一行,字母间以空格为间隔;
再者首先输出所有的组合数列,每种情况一行,在同一行中以字母增序顺序显示,字母
间以空格为间隔。
【输入样例】
3
2
a s d
【输出样例】
Permutation:
a d
d a
a s
s a
d s
s d
Combination:
a d
a s
d s
(五)、【Python0003】蒙特·卡罗法计算圆周率(写到实验报告中)
【题目描述】Python 程序设计
蒙特·卡罗方法是一种通过概率来得到问题近似解的方法,在很多领域都有重要的应用,
其中就包括圆周率近似值的计问题。假设有一块边长为 2 的正方形木板,上面画一个单位圆,
然后随意往木板上扔飞镖,落点坐标(x,y)必然在木板上(更多的时候是落在单位圆内),如
果扔的次数足够多,那么落在单位圆内的次数除以总次数再乘以 4,这个数字会无限逼近圆
周率的值。这就是蒙特·卡罗发明的用于计算圆周率近似值的方法,如下图所示。编写程序,
模拟蒙特·卡罗计算圆周率近似值的方法,输入掷飞镖次数,然后输出圆周率近似值。
【练习要求】
请给出源代码程序和运行测试结果,源代码程序要求添加必要的注释。
【输入格式】
在一行中输入掷飞镖的次数。
【输出格式】
输出采用蒙特·卡罗法模拟计算出的圆周率的值。
【输入样例】
100000
【输出样例】
3.13056
(六)、【Python0004】验证 6174 猜想(写到实验报告中)
【题目描述】
1955 年,卡普耶卡(D.R.Kaprekar)对 4 位数字进行了研究,发现一个规律:对任意各
位数字不相同的 4 位数,使用各位数字能组成的最大数减去能组成的最小数,对得到的差重
复这个操作,最终会得到 6174 这个数字,并且这个操作最多不会超过 7 次。请编写程序验
证这个猜想。
【练习要求】
请给出源代码程序和运行测试结果,源代码程序要求添加必要的注释。
【输入格式】
在一行中输入一个任意各位数字不相同的 4 位数。
【输出格式】
石家庄铁道大学 信息学院 刘立嘉
4Python 程序设计
验证 6174 猜想,输出过程中计算得到的各数,数据间以空格为间隔。
【输入样例】
2694
【输出样例】
2694 7173 6354 3087 8352 6174
(七)、【Python0005】模拟页面调度 LRU 算法(写到实验报告中)
【题目描述】
所谓 LRU 算法,是指在发生缺页并且没有空闲主存块时,把最近最少使用的页面换出主
存块,腾出地方来调入新页面。
问题描述:一进程获得 n 个主存块的使用权,对于给定的进程访问页面次序,问当采用
LRU 算法时,输出发生的缺页次数。
【练习要求】
请给出源代码程序和运行测试结果,源代码程序要求添加必要的注释。
【输入格式】
在第一行中输入进程获得使用权的主存块数量 n。
在第二行中输入进程访问页面的次序,各数据之间以空格为间隔。
【输出格式】
输出对于给定的 n 和进程访问页面的次序,输出采用 LRU 算法时的缺页次数。
【输入样例】
3
1 2 3 4 1 2 5 1 2 3 4 5
【输出样例】
7
(八)、【Python0006】爬楼梯(写到实验报告中)
【题目描述】
假设一段楼梯共 n(n>1)个台阶,小朋友一步最多能上 3 个台阶,那么小朋友上这段楼
梯一共有多少种方法。
【练习要求】
请给出源代码程序和运行测试结果,源代码程序要求添加必要的注释。
【输入格式】
在一行中输入楼梯台阶的数目 n。
【输出格式】
输出小朋友上这段楼梯的方法数。
【输入样例】
15
【输出样例】
5768
(九)、【Python0007】杨辉三角形(写到实验报告中)
【题目描述】
输出 n(0<n)行杨辉三角形,n 由用户输入。
【练习要求】
石家庄铁道大学 信息学院 刘立嘉
5Python 程序设计
石家庄铁道大学 信息学院 刘立嘉
6
请给出源代码程序和运行测试结果,源代码程序要求添加必要的注释。
【输入格式】
一行中输入 1 个整数 n。
【输出格式】
输出 n 行杨辉三角形,每个数的显示格式:占 5 位,右对齐。
【输入样例】
3
【输出样例】
1
1
1
2
1
1
3
3
1
(十)、【Python0008】筛法求素数(写到实验报告中)
【题目描述】
用户输入整数 n 和 m(1<n<m<1000),应用筛法求[n,m]范围内的所有素数。
【练习要求】
请给出源代码程序和运行测试结果,源代码程序要求添加必要的注释。
【输入格式】
在一行中输入整数 n 和 m,数据间以空格为间隔。
【输出格式】
按照一行 5 个的格式输出[n,m]范围内的所有素数,其中每个素数的显示格式为:占 5
位,右对齐。
【输入样例】
50 100
【输出样例】
53
59
61
67
71
73
79
83
89
97
(十一)、【Python0009】查找鞍点(写到实验报告中)
【题目描述】
对于给定 5X5 的整数矩阵,设计算法查找出所有的鞍点的信息(包括鞍点的值和行、
列坐标,坐标从 1 开始)。
提示:鞍点的特点:列上最小,行上最大。
【练习要求】
请给出源代码程序和运行测试结果,源代码程序要求添加必要的注释。
【输入格式】
输入 5 行 5 列整数,同行数据间以空格为间隔。
【输出格式】
在一行中以以下格式输出矩阵中的所有鞍点,每个鞍点的显示格式为:
[<鞍点的行坐标>,<鞍点的列坐标>,<鞍点的值>]
【输入样例】
11 3 5 6 9
12 4 7 8 10
10 5 6 9 11Python 程序设计
8 6 4 7 8
15 10 11 20 25
【输出样例】
[4,1,8][4,5,8]
(十二)、【Python0010】正整数的因子展开式
【题目描述】
编写程序,输出一个给定正整数 x(x>1)的质因子展开式。
【输入格式】
请在一行中输入整数 x 的值。
【输出格式】
对每一组输入的 x,按以下格式输出 x 的质因子展开式(假如 x 的质因子分别为 a、b、
c):x=a*b*c
【输入样例 1】
72
【输出样例 1】
72=2*2*2*3*3
(十三)、【Python0011】牛顿迭代法(写到实验报告中)
【题目描述】
编写程序,使用牛顿迭代法求方程 ax 3 bx 2 cx d 0 在 x 附近的一个实根。
【练习要求】
请给出源代码程序和运行测试结果,源代码程序要求添加必要的注释。
【输入格式】
请在一行中输入方程系数 a、b、c、d 和实数 x,数据中间以空格为间隔。
【输出格式】
对每一组输入的数据,输出牛顿迭代法求出的实根(格式为保留小数点后 2 位,四舍五
入)。
【输入样例】
1.0 2.0 3.0 4.0 1.0
【输出样例】
-1.65
(十四)、问题思考(写到实验报告中)
【Python0012】针对 Python 中的列表、元组、字典、集合、字符串,请以条目形式从
各方面对比它们之间的异同。
【实验评价】
每名学生提交电子实验报告 1 份(需要提交的内容在实验安排中已注明),实验自评
和实验心得体会要据实填写,杜绝抄袭;
请在实验结束后及时将实验报告电子稿(包含实验项目源代码)请在实验结束后及时压
缩打包请发至 PTA 平台 https://pintia.cn 及实验提交交平台 http://www.xzc.cn;