《python程序设计基础实验报告.docx》由会员分享,可在线阅读,更多相关《python程序设计基础实验报告.docx(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Python语言编程与工程实践实验报告姓名实验工程班级 |Python开发环境和运行环境的配置学号而实验环境Install Python 3.7.8 (32-bit)Select Install Now to install Python with default settings, or choose Customize to enable or disable features.。Install NowC:Users Customize installationChoose location and featurespython fcx windows0 Install launcher
2、for all users (recommended) O Add Python 3.7 to PATHCancel2:5 12 22 5:C0:1 :2S .27 Q.A5:C :5C 2:1十五一 共豆 百看成用程序M. Python 3.7.8 (32-bit) Setupj Optional Features0 DocumentationInstalls the Python documentation file.全反iz0 pipInstalls pip. which can download and install other Python packages.0 tdAk and
3、IDLEInstalls tkinter and the IDLE development environment.0 Python test suiteInstalls the standard library test suite.0 py launcher H for all users (requires elevation)12225:(0:*:21python for windowsI wr 町eInstalls the global py launcher to make it easier to start Python.:2;0:“5XBackNextCancel2:单片,蛤
4、布告;01米惠 i 云.docG2020/6/1622: Python 3.7.8 (32-bit) SetupAdvanced Options0 Install for a。usersH Associate files with Python (requires the py launcher)0 Create shortcuts for installed applications0 Add Python to environment variablesH Precompile standard libraryDownload debugging symbols Download debu
5、fl binaries (requires VS 2015 or later)python for windows使用BBP公式可以直接求得十六进制TT的第n位而不需要计算前n位的数,其优点在于可以进行分布式计算, 即将一个耗时的运算拆分成假设干个运算单元在不同的机器上进行并行运算,提高运算效率。同时也可以用来测试计 算机的性能。以下公式将直接求出十进制的TT:_ ( 1 ( 4211 = A 诏(8k + 1 - 8A: + 4 81 + 5 - 8A: + 6)解决前提:十进制的小数如何转换为十六进制?例如,小数3.1415926转换为16进制为3.243f69a25bo94,为了获取第一
6、个16进制的小数,我们只需要取 3.1415926的小数局部0.1415925乘以16即可得到2.2654816,结果的整数位数即为16十六进制小数转换后 端结果,再取2.2654816的小数局部0.2654816乘以16即可得到第二个16进制小数位,依次类推,当整数部 分位10、11、12等大于9的数时,使用a、b、c等代替即可。所以,如果需要得到16进制tt的第n个数,只需要求得即可: = 416dSi - 216dS4 - 16dS5 - 16dS6其中r iSj - 216k(8索 + 力计算时,将式子中的j替换为1、4、5、6然后分别代入上式即可。 式子中的k表示精度,d表示需要计算
7、tt的哪一位置完整代码:def Pl(n):pi=0 for k in range(n):pi += l/pow(16,k)*(4/(8*k+l)-2/(8*k+4)-l/(8*k+5)-l/(8*k+6) #BBP 公式 return piimport timescale = 30# 精度print(执行开始”.center(scale+4-) for i in range(scale+l):a=* * jb=.1 * (scale-i) c=(i/scale)*100 pi = PI(1000)print(:A3.0f%-.format(c/a/b)time.sleep(O.l)print
8、(圆周率值是:.format(pi)print(执行结束.center(scale+4)程序输入:限 *text4.py - F:/python/实筋text4.py (3.7.8)*File Edit Format Run Options Window Helpdef PI(n):pi=0for k in range(n):pi += 1/pow(16, k) * (4/ (8*k+l)-2/ (8*k+4) -1/ (8*k+5) -1/ (8*k+6) #BBP公式return pi import time scale = 30# 精度print (执行开始center (scale+4
9、,9 -) for i in range(scale+1):a=,* * ib=.* (scale-i) c=(i/scale)*100 pi = PI (1000) print C 3. Of%format (c, a, b) time, sleep(0. 1)print (圜周率值是:. format (pi) print (执行结束center (scale+4,)运行结果:: r :/pytnon 执行开始 0 %-3 %-7 %*-10 %*-13 %*-17 %*-20 %*-23 %*-27 %*-30 %*-33 %*-37 %*-40 %*- 43 % *- 47 % *-5
10、0 %*-53 % *-57 %*-60 % *-63 %*-67 %*-70 % *-73 %*-77 %*-80 %*-83 %*-87 %*-. 90 %*-. 93 %*-. 97 %*- 100%*- 圈周率值是:3.执行结束 3.统计不同字符个数。编写一个程序,接受用户从键盘输入一行字符,统计并输出其中英文字 符、数字、空格和其他字符的个数。完整代码:#实验三m=input(请输入一行字符:n)alpha,numspaceotheyOQ。for i in m:if i.isalpha(): alpha+=lelif i.isdigit(): num+=lelif i.isspace
11、():space+=lelse:other+=lprint(英文字符数出数字字符数出空格字符数出其他字符数format(alpha,num,space,other)运行结果:= RESTART: F:/python/实验/text4.py =6输入一行字符:202011. 9我速在做实验报告yingyingying,老师给我多打点分哇!英文字符数29,数字字符数7,空格字符数0,其他字符数34.猜数游戏。让计算机随机产生一个在0-100之间的预设整数,用户通过键盘输入所猜的数。 如果大于预设的数,显示“遗憾,太大了”;小于预设的数,显示“遗憾,太小了”,如此循环,直至 猜中该数,显示“猜想了
12、N次,你终于猜对了!”,其中N是用户输入数字的次数。当用户输入的不 是整数(如字母、浮点数等)时,给出“输入内容必须为整数!”的提示,并让用户重新输入,而不 是退出程序。(要求:分别采用流程图和Python代码描述该计算问题。)完整代码:(参考书上pll2页关于random库和pll6try-except语句介绍和网络)import randomsecret = random.randint(0,100)#print(secret)N=1a=1000while secret!=a:try:temp二input(猜数字游戏开始,请输入数字0-100:)guess = int(temp)if gu
13、esssecret:print(遗憾,太大了!,)elif guesstext4. py猜数字游戏开始.请输入数字OTOO:这个搞了好久好烦啊输入内容必须为整数!猜数字游戏开始,请输入数字0T00:输入内容必须为整数!猜数字游戏开始. 遗憾,太大了! 猜数字游戏开始, 遗憾,太小了! 猜数字游戏开始. 遗憾,太大了! 猜数字游戏开始. 遗憾,太小了! 猜数字游戏开始. 遗憾,太小了! 猜数字游戏开始. 通憾,太小了! 猜数字游戏开始. 通憾,太小了! 猜数字游戏开始. 遗憾,太大了! 猜数字游戏开始. 遗憾,太小了! 猜数字游戏开始,请输入数字0-100:请输入数字0T00:请输入数字0T00
14、:请输入数字0-100:请输入数字0-100:请输入数字0T00:请输入数字0T00:请输入数字0T00:请输入数字0-100:预测13次,您猜对了!请输入数字0-100:77596955575860666465流程图:1 Z 2XZ遇到的问题及解决方法(假设没有找到解决方法,就仅列出问题)1.廛 text4.py - F:/python/text4.py (3.7.8) 口File Edit Format Run Options Window Helpdef PI(n):pi=0for k in range(n):pi += 1/pow(16, k) * (4/ (8*k+l) -2/ (8
15、*k+4) -1/ (8*k+5) -1/ (8*k+6) WBBP公式 return pi import time scale = 30 #楮度print,执行开始center (scale+4, _,) for i in range(scale+1):层 SyntaxErrorinvalid syntaxa- * * i b二.* (scale-i) c=(i/scale)*100 pi = PI(1000) print (* : 3. Of机- . format (c, a, b) time, sleep(0. 1)print (员的率值是: , format (pi) print (“
16、执彳j:结束center (scale+4, ,)确定错误原因:返回值无效,说明pi的表达式有问题,检查发现等式)缺少3.ADOiaivi . r . / py inun/la py执行开始Traceback (most recent call last):File F:/python/实验/text4. py, line 14, in print (z,: 3. 0f%-, format (a, b, c),ValueError: Unknown format code f for object of type str 错误原因:没搞清字符串格式化的顺序,导致出现无法配对(?是这么说嘛)问题
17、 解决:a=* * ib=.* (scale-i)c=(i/scale)*100pi = PI(1000)print ( : 3. Of%卜. format (c, a, b) ,1/z. 4.猜出正确数字无法返回,prints预测:.0f次,您猜对了!,.format(N),猜数字游戏并始,请输入数字0T00: 7遗憾,太小了!猜数字游戏开始,请输入数字0T00: 8 、错误原因:循环有问题,莫名其妙调整着就好了,好奇怪哦实验心得了解程序的基本结构并绘制流程图,掌握程序的分支结构(if语句),掌握程序的循环结构(for 语句和while语句),掌握随机库的使用方法,了解程序异常处理及用法。P
18、ython语言编程与工程实践实验报告姓名班级学号实验工程利用函数编写程序日期实验目的:1、能够熟练运用函数编写程序;2、理解递归函数的使用方法。实验准备熟悉教材第5章内容;python3. 7. 8 开发环境,idle。实验内容:5.编制程序绘制七段数码管:输入当前日期的数字形式,输出数码管表示的图形形式。 完整代码:pl40import turtle,datetimedef drawGap(): #绘制数码管间隔turtle.penup()turtle.fd(5)def drawLine(draw): #绘制单段数码管drawGap()turtle.pendown()if draw else
19、 turtle.penup()turtle.fd(40)drawGap()turtle.right(90)defdrawDigit(d): #根据数字绘制七段数码管drawLine(True) if d in2,3/4,5,6,8/91 else drawLine(False)drawLine(True) if d in0/l/3A5,6/7/8/9 else drawLine(False)drawLine(True) if d in0,2,356,8,9 else drawLine(False)drawLine(True) if d in0,2,6,8 else drawLine(False
20、)turtle.left(90)drawLine(True) if d in0,4,5,6,8,9 else drawLine(False)drawLine(True) if d in0,2/3,5,6,7/8,9 else drawLine(False)drawLine(True) if d in0/l/23A7/8/9 else drawLine(False)turtle.left(180) turtle.penup()turtle.fd(20)def drawDate(data):turtle.pencolor(,redH)for i in data:ifturtle, write(年:
21、font=(Arial”J8Jnormal)turtle.pencolor(green)turtle.fd(40)elif i=*=*:turtle.write(,/font=(,Ariar,/18/,normar,)turtle.pencolor(,blue,1)turtle.fd(40)elif i=,+,:turtle.writeC H ,/font=(,Arial,1/18/,normar,)else:drawDigit(eval(i)def main():turtle.setup(800/350/200,200)turtle.penup()turtle.fd(-360)turtle.
22、pensize(7)drawDate(datetime.datetime.now().strftime(%Y-%m=%d+,)turtle.hideturtle()main()运行结果:隐藏turtle,明显提高图形速度mm通6 .编制程序绘制科赫曲线:利用递归函数绘制。5阶科赫曲线。完整代码:pl47import turtledef kochfsize):if n = 0:turtle.fd(size)else:for angle in 0, 60, -120, 60:turtle.left(angle) koch(size/3, n-1)def main():turtle.setupfSO
23、OOO)turtle.speed(O) #控制绘制速度turtle.penup()turtle.gotof-SOO, -50)turtle.pendown()turtle.pensize(2)koch(6003)#0阶科赫曲线长度,阶数turtle.hideturtle()main()运行结果:。阶/ Python Turtle Graphics2阶.定义一个具有3个输入参数、2个返回值的函数,其中2个输入参数具有默认值,并编写一段程 序调用这个函数。完整代码:#选择排序,从小到大#选择排序,从小到大def selection_sort(arr):for i in range(len(arr)
24、 -1):minjndex = ifor j in range (i+ljen(arr):if arrj RESTA请输出最小值45 请输出最大值148 t = compare(45, 148) print (请输由最小值,t print (请输出最大值,t3.力 Python 3.7.8 (32-bit) SetupSetup was successfulSpecial thanks to Mark Hammond, without whose years of freely shared Windows expertise. Python for Windows would still b
25、e Python for DOS.New to Python? Start with the online tutorial and documentation.See whats new in this release.9 Disable path length limitpython for windowspython for windowsChanges your machine configuration to allow programs, including Python, to bypass the 260 character MAX PATH limitation.遇到的问题及
26、解决方法(假设没有找到解决方法,就仅列出问题) 复制脚本出现语法错误,疑似因为中英文输入问题3 Python 3.7.8 ShellOXFile Edit Shell Debug Options Window HelpPython 3.7.8 (tags/v3. 7. 8:4b47a5b6ba, Jun 28 2020, 07:55:33) MSC v. 1916 32 bit (Intel) on Win32Type -help, copyright, credits or license。” for more information. print( Hello World!MyfirstP
27、ython.py -记事本文件(F)嫔辑(E)格式(。)查看(V)帮助(H)# My first Python program print(l am Python) )SyntaxExior: invalid chai-acter in identifier print ( Hello World!)Hello World! print C Hello Again, )Hello Again print ( I 1 ike typing this* )I like typing this print( This is fun )This is fun print C Yay! Pringt i
28、ngt )YayJPringting实验心得通过老师理论课的细心的讲解和线下实验课相结合,我了解到Python是一种跨平台的计算机程序设计语t 二 compare(23, 35, 888) print。请输出最小值,t0) print(请输出最关值, til请输出最小值23请输出最大值888# 请输出最小值23请输出最大值888# 遇到的问题及解决方法(假设没有找到解决方法,就仅列出问题)1.Traceback (most recent call last):File F:/python/实验/draw7SegDisplay. py, line 49, in main()File F:/pyt
29、hon/实验/draw7SegDisplay. py, line 46, in main drawDate (datetime, datetime. now(). strftime (, %Y-%m=%d+,)File F:/python/实验/draw7SegDisplay. py, line 40, in drawDate drawDigit(eval (i)File F:7pyhon/实验/draw7SegDisplay, py”, line 14, in drawDigit drawLine(|true: if, d in2, 3, 4, 5, 6, 8, 9 else drawLin
30、e (False)NameError: name true is not defined 错误原因:l.True大小写书写错误,导致无效lef drawdate(data):turtle, pencolor Cre2. foi i in data:拼写错误,导致无定义解决方案:* Replace DialogFind:trueReplace with: TrueOptions Regular expression Match case Whole word 0 Wrap aroundDirection O Up DownCloseFindReplaceReplace+FindReplace A
31、llCloseFindReplaceReplace+FindReplace All实验心得九掌握函数的定义和调用方法九 理解函数的参数传递过程以及变量的作用范围X 了解lambda函数X掌握时间日期标准库的使用X理解函数递归的定义和使用方法Python语言编程与工程实践实验报告姓名班级学号实验工程利用列表和字典类型编写程序日期实验目的:1、能够熟练运用列表类型编写程序来处理实际问题;2、能够熟练运用字典类型编写程序来处理实际问题。实验准备熟悉教材第6章内容;三国演义文本python3. 7. 8 开发环境,idle。实验内容1.编写程序计算基本统计值:输入9个数据值,输出平均值、标准差和中位数
32、。 程序代码:def getNum(): #从控制台获取多个不确定数据的方法nums =;iNumStr = input(请输入数字(回车退出while iNumStr !=nums.append(eval(iNumStr);iNumStr = input(请输入数字(回车退出):);return nums;def mean(numbers):# 计算平均值s = O.O;for num in numbers:s = s + num;return s/len(numbers);def devfnumbers, mean):#计算方差sdev = 0.0;for num in numbers:s
33、dev = sdev + (num - mean)*2;return pow(sdev/(len(numbers)-l), 0.5);def median(numbers):# 计算中位数sorted(numbers);size = len(numbers);if size%2 = 0:med = (numberssize/2-l + numberssize/2)/2;else:med = numberssize/2;return med;n = getNum();m = mean(n);print(“平均值:,方差:.2f,中位数:format(m, dev(n,m),median(n);运
34、行结果:#输入数字:42 24 46 67 89 45 32 35 89#输出:平均值:方差:24.03 中位数:89a chapter6.py F:/python/Wchapter6.py (3.7.8) File Edit Format Run Options Window Helpclef getNumO : *从控制台1获取多个不确定数据的方法nums = 口;iNumStr = input (请输入数字(网乍退出):”);while iNumStr !=:nums.append(eval(iNumStr);iNumStr = input (请输入痣字(同乍退;ID;return nu
35、ms;def mean (numbers) :#计算平均值s = 0. 0;for num in numbers:s = s + num;return s/len(numbers);def dev (numbers, mean):=计算方第sdev = 0. 0;for num in numbers:sdev = sdev + (num - mean)*2;return pow(sdev/(len(numbers)-1), 0. 5);def median (numbers) :#计齐中位数sorted(numbers);size = len(numbers);if size%2 = 0:me
36、d = (numbersLsize/2_1 + numberssize/2)/2; else:med = numberssize/2;return med;n = getNumO ;m = mean(n);clef getNumO : *从控制台1获取多个不确定数据的方法nums = 口;iNumStr = input (请输入数字(网乍退出):”);while iNumStr !=:nums.append(eval(iNumStr);iNumStr = input (请输入痣字(同乍退;ID;return nums;def mean (numbers) :#计算平均值s = 0. 0;for
37、 num in numbers:s = s + num;return s/len(numbers);def dev (numbers, mean):=计算方第sdev = 0. 0;for num in numbers:sdev = sdev + (num - mean)*2;return pow(sdev/(len(numbers)-1), 0. 5);def median (numbers) :#计齐中位数sorted(numbers);size = len(numbers);if size%2 = 0:med = (numbersLsize/2_1 + numberssize/2)/2;
38、 else:med = numberssize/2;return med;n = getNumO ;m = mean(n);J. Python 3.7.8 ShellFile Edit Shell Debug Options Window HelpPython 3. 7. 8 (tags/v3. 7.8:4b47a5b6ba, Jun 28 2020, I (Intel) on Win32Tvpe help, copyright, credits or license。: = RESTART: Fpython/实验/cha请输入数字(回乍退出):42请输入数字(回车退出):24请输入数字(回外
39、退出):46请输入数字(回车退出):67请输入数字(回车退出):89请输入数字(回车退出):45请输入数字(回乍退出):32请输入数字(回午退出):35请输入数字(回车退出):89请输入数字(回车退出):平均值方差:24.03,中位数:89.print(平均值:,方差:. 2f,中位数:. . format (m, dev(n, m), median(n);2.重复元素判定。编写一个函数,接受列表作为参数,如果一个元素在列表中出现不止1次, 那么返回True,否那么返回Falseo要求:不要改变原来列表的值,方法应尽可能简洁。同时编写调用这 个函数程序进行测试。程序代码:def fun(lis
40、t):s = set()length = len(list)for i in range(length):#添加到set (无序,自动去重来)集合中s.add(listi)#判断是否重复元素,因重复元素,set集合不会添加,导致set集合长度和添加的元素个数不一致if len(s) !=length:return True#重复else:return False#非重复print(fun() #输入列表 程序输入:print (fun(l, 2, 3, 4, 5, 6) print (fun(l, 6, 3, 4, 5, 6)运行结果RESTART: F: /python/实验/chapter6. py =False True 3.编写程序统计三国演义人物出场:输入电子版三国演义文本,输出出场率最高的15 个人物和次数。程序代码:import jiebaexcludes = “将军” J却说,荆州”,11二人“J不可不能J如此商议军士”J如何J主公军马左右 引兵次日”,11大喜“J天下,”东吴于是J今日“J不敢”,11魏兵“J陛下11J 一人“J都督,J人马“J不知汉中,“只见众将