教学课件:《Python语言程序设计基础(第2版).ppt

上传人(卖家):三亚风情 文档编号:3546309 上传时间:2022-09-15 格式:PPT 页数:825 大小:24MB
下载 相关 举报
教学课件:《Python语言程序设计基础(第2版).ppt_第1页
第1页 / 共825页
教学课件:《Python语言程序设计基础(第2版).ppt_第2页
第2页 / 共825页
教学课件:《Python语言程序设计基础(第2版).ppt_第3页
第3页 / 共825页
教学课件:《Python语言程序设计基础(第2版).ppt_第4页
第4页 / 共825页
教学课件:《Python语言程序设计基础(第2版).ppt_第5页
第5页 / 共825页
点击查看更多>>
资源描述

1、Python语言程序设计第1章 程序设计基本方法 计算机的概念 n 计算机是根据指令操作数据的设备n 具备功能性和可编程性两个基本特性 功能性指对数据的操作,表现为数据计算、输入输出处理和结果存储等。可编程性指它可以根据一系列指令自动地、可预测地、准确地完成操作者的意图 计算机的概念n 计算机硬件所依赖的集成电路规模按照摩尔定律以指数方式增长n 计算机运行速度也接近几何级数快速增加n 计算机所能高效支撑的功能不断丰富发展 n 程序设计语言经历了从机器语言到高级语言的发展过程,朝着更接近自然语言的方向发展。计算机的概念n 摩尔定律是计算机发展历史上最重要的预测法则摩尔定律指出,单位面积集成电路上

2、可容纳晶体管的数量约每两年翻一倍。由于计算机中几乎所有重要部件都由集成电路实现 摩尔定律(Moores Law)n 第一阶段:1946年到1981年,“计算机系统结构阶段”n 第二阶段:1982年到2007年,“计算机网络和视窗阶段”n 第三阶段:2008年至今,“复杂信息系统阶段”。n 第四阶段:约20年后未来的某个时期开始,“人工智能阶段”计算机技术发展水平的时代性 程序设计语言n 程序设计语言包括编译执行和解释执行两种方式程序设计语言是计算机能够理解和识别用户操作意图的一种交互体系,它按照特定规则组织计算机指令,使计算机能够自动进行各种运算处理。按照程序设计语言规则组织起来的一组计算机指

3、令称为计算机程序。程序设计语言概述n 机器语言机器语言是一种二进制语言,它直接使用二进制代码表达指令,是计算机硬件可以直接识别和执行的程序设计语言。例如:执行数字2和3的加法,16位计算机上的机器指令为:11010010 00111011,不同计算机结构的机器指令不同 程序设计语言概述n 汇编语言使用助记符与机器语言中的指令进行一一对应,在计算机发展早期帮助程序员提高编程效率 例如:执行数字2和3的加法,汇编语言指令为:add 2,3,result,运算结果写入result。l 机器语言和汇编语言都直接操作计算机硬件并基于此设计,所以它们统称为低级语言。程序设计语言概述n 高级语言高级语言区别

4、于低级语言在于,高级语言是接近自然语言的一种计算机程序设计语言,更容易地描述计算问题并利用计算机解决计算问题。例如:执行数字2和3加法的高级语言代码为:result=2+3程序设计语言概述高级语言按照计算机执行方式的不同可分成两类n静态语言n脚本语言这里所说的执行方式指计算机执行一个程序的过程,静态语言采用编译执行,脚本语言采用解释执行。编译和解释n 编译是将源代码转换成目标代码的过程,通常,源代码是高级语言代码,目标代码是机器语言代码,执行编译的计算机程序称为编译器编译和解释n 解释是将源代码逐条转换成目标代码同时逐条运行目标代码的过程。执行解释的计算机程序称为解释器。编译和解释编译是一次性

5、地翻译,一旦程序被编译,不再需要编译程序或者源代码。n 对于相同源代码,编译所产生的目标代码执行速度更快。n 目标代码不需要编译器就可以运行,在同类型操作系统上使用灵活。编译和解释解释则在每次程序运行时都需要解释器和源代码。n解释执行需要保留源代码,程序纠错和维护十分方便。n只要存在解释器,源代码可以在任何操作系统上运行,可移植性好 编译和解释为什么要学习计算机编程?因为“编程是件很有趣的事儿”!计算机编程计算机编程计算思维是区别于以数学为代表的逻辑思维和以物理为代表的实证思维的第三种思维模式。编程是一个求解问题的过程p首先需要分析问题,抽象内容之间的交互关系p设计利用计算机求解问题的确定性方

6、法,p进而通过编写和调试代码解决问题这是从抽象问题到解决问题的完整过程。Python语言概述Python语言的诞生Guido van RossumPython语言创立者2002年,Python 2.x2008年,Python 3.x使用Python语言编写的Hello程序只有一行代码 print(“Hello World”)第一行的“”是Python语言运行环境的提示符第二行是Python语句的执行结果 编写Hello程序print(Hello World)Hello World#include int main(void)printf(Hello Worldn);return 0;一般来说,

7、同样功能的程序,Python语言实现的代码行数仅相当于C语言的1/5至1/10,简洁程度取决于程序的复杂度和规模。C语言的Hello程序 脚本语言+语句执行 例1:print(“Hello World!大家好大家好!)例2:sum=99999*99999 print(sum)Python语言的优势 例3:months=JanFebMarAprMayJunJulAugSepOctNovDec n=4 monthAbbrev=months(n-1)*3:(n-1)*3+3 print(monthAbbrev)Python语言的优势简洁+强制可读性例4:def mean(numbers):s=0.0

8、 for num in numbers:s=s+num return s/len(numbers)nums=0,1,2,3,4,5,6,7,8,9 print(mean(nums)Python语言的优势跨平台+开源http:/pypi.python.org/目前有93561个开源库,覆盖各类计算问题例5:from random import random rnd=random()*10 print(rnd)Python语言的优势Python语言的优势:面向过程+面向对象灵活的介绍程序设计理念Python语言的优势:图形界面Windows窗口玫瑰花Python语言的优势Python语言特点n P

9、ython语言是通用语言n Python语言是脚本语言n Python语言是开源语言n Python语言是跨平台语言n Python语言是多模型语言Python开发环境配置安装n 到Python主页下载并安装Python基本开发和运行环境,网址:www.python.org/downloads/n 根据操作系统不同选择不同版本n 下载相应的Python 3.0系列版本程序安装安装启动n 方法1:启动Windows命令行工具,输入python启动n 方法2:调用IDLE来启动Python图形化运行环境启动n 方法3:按照语法格式编写代码,编写可以用任何文本编辑器,保存为文件。启动n 方法4:打开

10、IDLE,点击Ctrl+N打开一个新窗口,输入语句并保存,使用快键建F5即可运行该程序启动n 方法5:将Python集成到Eclipse、PyCharm等面向较大规模项目开发的集成开发环境中Hello程序采用上述某个方法,执行:程序的基本编写方法n 输入数据n 处理数据n 输出数据IPO程序编写方法n 输入数据输入(Input)是一个程序的开始。程序要处理的数据有多种来源,形成了多种输入方式,包括:文件输入、网络输入、控制台输入、交互界面输出、随机数据输入、内部参数输入等。IPO程序编写方法n 处理数据处理(Process)是程序对输入数据进行计算产生输出结果的过程。计算问题的处理方法统称为“

11、算法”,它是程序最重要的组成部分。可以说,算法是一个程序的灵魂。IPO程序编写方法n 输出数据输出(Output)是程序展示运算成果的方式。程序的输出方式包括:控制台输出、图形输出、文件输出、网络输出、操作系统内部变量输出等。IPO程序编写方法n 微实例1.1圆面积的计算输入:圆半径raduis处理:计算圆面积area=*radius*radius(此处,取3.1415)输出:圆面积area IPO程序编写方法n 分析问题分析问题的计算部分n 划分边界划分问题的功能边界n 设计算法设计问题的求解算法n 编写程序,编写问题的计算程序n 调试测试,调试和测试程序n 升级维护,适应问题的升级维护使用

12、计算机解决问题 Python语言版本更迭Python语言的版本更迭n 更高级别的3.0系列不兼容早期2.0系列n 2008年至今,版本更迭带来大量库函数的升级替换,Python语言的版本更迭痛苦且漫长n 到今天,Python 3.x系列已经成为主流本章小结本章具体讲解了计算机的基本定义、计算机的功能性和可编程性、程序设计语言分类、编译和解释、Python语言的历史和发展、配置Python开发环境等内容,最后给出了Python版本的主要区别供参考。Python实例展示from PIL import Imagefrom PIL import ImageFilterim=Image.open(np.

13、jpg)e33=im.filter(ImageFilter.CONTOUR)e33.save(E(33).jpg)Python语言程序设计第2章 Python程序实例解析温度转换程序实例温度体系温度刻画存在不同体系,摄氏度以1标准大气压下水的结冰点为0度,沸点为100度,将温度进行等分刻画。华氏度以1标准大气压下水的结冰点为32度,沸点为212度,将温度进行等分刻画。温度转换实例问题:如何利用Python程序进行摄氏度和华氏度之间的转换n 步骤1:分析问题的计算部分:采用公式转换方式解决计算问题温度转换实例n 步骤2:确定功能 输入:华氏或者摄氏温度值、温度标识 处理:温度转化算法 输出:华氏

14、或者摄氏温度值、温度标识 F F表示华氏度,表示华氏度,82F82F表示华氏表示华氏8282度度 C C表示摄氏度,表示摄氏度,28C28C表示摄氏表示摄氏2828度度温度转换实例n 步骤3:设计算法根据华氏和摄氏温度定义,转换公式如下:C=(F 32)/1.8 F=C*1.8+32 其中,C表示摄氏温度,F表示华氏温度温度转换实例n 步骤4:编写程序温度转换实例n 步骤5:调试、运行程序在系统命令行上运行如下命令执行程序:C:python TempConvert.py或者:使用IDLE打开上述文件,按F5运行(推荐)输入数值,观察输出Python语法元素分析程序的格式框架Python语言采用

15、严格的“缩进”来表明程序的格式框架。缩进指每一行代码开始前的空白区域,用来表示代码之间的包含和层次关系。1个缩进=4个空格n用以在Python中标明代码的层次关系n缩进是Python语言中表明程序框架的唯一手段程序的格式框架单层缩进 多层缩进 注释注释:程序员在代码中加入的说明信息,不被计算机执行注释的两种方法:n单行注释以#开头#Here are the commentsn多行注释以 开头和结尾 This is a multiline comment used in Python命名与保留字n常量:程序中值不发生改变的元素n变量:程序中值发生改变或者可以发生改变的元素Python语言允许采用

16、大写字母、小写字母、数字、下划线(_)和汉字等字符及其组合给变量命名,但名字的首字符不能是数字,中间不能出现空格,长度没有限制注意:标识符对大小写敏感,python和Python是两个不同的名字 命名与保留字 保留字,也称为关键字,指被编程语言内部定义并保留使用的标识符。程序员编写程序不能定义与保留字相同的标识符。每种程序设计语言都有一套保留字,保留字一般用来构成程序整体框架、表达关键值和具有结构性的复杂语义等。掌握一门编程语言首先要熟记其所对应的保留字。命名与保留字 Python 3.x保留字列表(33个)andelifimportraiseaselseinreturnassertexcep

17、tistrybreakfinallylambdawhileclassfornonlocalwithcontinuefromnotyielddefglobalorTruedelifpass False None 字符串l Python语言中,字符串是用两个双引号“”或者单引号 括起来的一个或多个字符。l Python字符串的两种序号体系赋值语句n Python语言中,=表示“赋值”,即将等号右侧的值计算后将结果值赋给左侧变量,包含等号(=)的语句称为“赋值语句”n同步赋值语句:同时给多个变量赋值,=,赋值语句例:将变量x和y交换n采用单个赋值,需要3行语句:即通过一个临时变量t缓存x的原始值,然

18、后将y值赋给x,再将x的原始值通过t赋值给y。n采用同步赋值语句,仅需要一行代码:input()函数 获得用户输入之前,input()函数可以包含一些提示性文字 =input()input(请输入请输入:)请输入:pythonpython input(请输入请输入:)请输入:1024.2561024.256 分支语句 分支语句是控制程序运行的一类重要语句,它的作用是根据判断条件选择程序执行路径,使用方式如下:if:elif:.else:eval()函数 eval()函数是Python语言中一个十分重要的函数,它能够以Python表达式的方式解析并执行字符串,将返回结果输出x=1eval(x+1

19、)2eval(1.1+2.2)3.3 赋值语句例:将变量x和y交换n采用单个赋值,需要3行语句:即通过一个临时变量t缓存x的原始值,然后将y值赋给x,再将x的原始值通过t赋值给y。n采用同步赋值语句,仅需要一行代码:输出函数n print()函数用来输出字符信息,或以字符形式输出变量。n print()函数可以输出各种类型变量的值。n print()函数通过%来选择要输出的变量。实例n用户输入两个数字,计算它们的平均数,并输出平均数循环语句n循环语句:控制程序运行,根据判断条件或计数条件确定一段程序的运行次数n遍历循环,基本过程如下for i in range():n例如,使某一段程序连续运行

20、10次for i in range(10):n其中,变量i用于计数turtle库和蟒蛇绘制程序Python小蛇nPython英文是蟒蛇的意思n通过下面的例子,来实践用Python语言输出图形效果。Python蟒蛇绘制实例Python语法元素nimport turtlenimport是一个关键字,用来引入一些外部库,这里的含义是引入一个名字叫turtle的函数库Turtle库nTurtle库是Python语言中一个很流行的绘制图像的函数库n使用turtle库,同学们头脑里需要有这样一个概念:n想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始n它根据一组函数指令的控制,在这

21、个平面坐标系中移动,从而在它爬行的路径上绘制了图形def定义函数n def 用于定义函数,这段程序中,共出现两次def关键词,包含两个函数drawSnake和main。n函数是一组代码的集合,用于表达一个功能,或者说,函数表示一组代码的归属,函数名称是这段代码的名字。n def所定义的函数在程序中未经调用不能直接执行,需要通过函数名调用才能够执行。程序运行n 两个def语句定义的函数所包含语句与def行存在缩进关系,def后连续的缩进语句都是这个函数的一部分。n 由于def定义的函数在程序中未经调用不会被执行,整个程序第一条执行的语句是main(),它表示执行名字为main()的函数。程序运行

22、n从而,该程序跳转到main()函数定义的一组语句中执行,即开始执行 turtle.setup()语句n同样的,main()函数的最后一条语句调用了drawSnake()函数,当执行到这条语句时,程序跳转到drawSnake()函数中运行。Python蟒蛇程序分析Python小蛇实例程序n程序运行main()函数中语句,遇到setup函数nTurtle中的turtle.setup()函数用于启动一个图形窗口,它有四个参数turtle.setup(width,height,startx,starty)n分别是:启动窗口的宽度和高度n表示窗口启动时,窗口左上角在屏幕中的坐标位置。程序n我们所使用的

23、显示屏幕也是一个坐标系,该坐标系以左上角为原点,向左和向下分别是x轴和y轴。n蟒蛇程序代码启动一个1300像素宽、800像素高的窗口,该窗口的左上角是屏幕的左上角。程序nTurtle中的turtle.pensize()函数表示小乌龟运动轨迹的宽度。n它包含一个输入参数,这里我们把它设为30像素,用pythonsize变量表示。程序nTurtle中的turtle.pencolor()函数表示小乌龟运动轨迹的颜色。n它包含一个输入参数,这里我们把它设为蓝色,blue,其他颜色单词也可以使用。Turtle采用RGB方式来定义颜色,如果希望获得和图片中颜色一致的小蛇,请输入turtle.pencolo

24、r(“#3B9909”)程序nTurtle中的turtle.seth(angle)函数表示小乌龟启动时运动的方向。它包含一个输入参数,是角度值。n其中,0表示向东,90度向北,180度向西,270度向南;负值表示相反方向。n程序中,我们让小乌龟向-40度启动爬行,即:向东南方向40度。090180270程序nmain()函数给出了小乌龟爬行的窗体大小,爬行轨迹颜色和宽度以及初始爬行的方位。n最后,调用drawSnake函数启动绘制蟒蛇功能。ndrawSnake函数有四个参数,根据调用时给出的参数,分别将40传递给rad、80给angle,5给len,15给neckradturtle.circl

25、e()函数功能nturtle.circle()函数让小乌龟沿着一个圆形爬行n参数rad描述圆形轨迹半径的位置这个半径在小乌龟运行的左侧rad远位置处,如果rad为负值,则半径在小乌龟运行的右侧n参数angle表示小乌龟沿着圆形爬行的弧度值turtle.fd()函数功能nturtle.fd()函数也可以用turtle.forward()表示乌龟向前直线爬行移动n表示小乌龟向前直线爬行移动,它有一个参数表示爬行的距离函数的封装Python的函数封装蟒蛇程序功能可以分成两类:n绘制图形前对画笔的设置,包括颜色、尺寸、初始位置等n以及绘制Python蟒蛇的功能。由于蟒蛇绘制的功能相对独立,可以用函数来

26、封装函数封装Python语言程序设计第3章 基本数据类型 数字类型数字类型n 程序元素:010/10,存在多种可能n 表示十进制整数值10n 类似人名一样的字符串n 数字类型对Python语言中数字的表示和使用 进行了定义和规范数字类型Python语言包括三种数字类型n整数类型n浮点数类型n复数类型整数类型n 与数学中的整数概念一致,没有取值范围限制n pow(x,y)函数:计算xyn 打开IDLEn 程序1:pow(2,10),pow(2,15)n 程序2:pow(2,1000)n 程序3:pow(2,pow(2,15)整数类型n 示例n 1010,99,-217 n 0 x9a,-0X89

27、 (0 x,0X开头表示16进制数)n 0b010,-0B101 (0b,0B开头表示2进制数)n 0o123,-0O456 (0o,0O开头表示8进制数)浮点数类型n 带有小数点及小数的数字 n Python语言中浮点数的数值范围存在限制,小数精度也存在限制。这种限制与在不同计算机系统有关浮点数类型浮点数类型n 示例n 0.0,-77.,-2.17 n 96e4,4.3e-3,9.6E5 (科学计数法)n 科学计数法使用字母“e”或者“E”作为幂的符号,以10为基数。科学计数法含义如下:e=a*10b复数类型n 与数学中的复数概念一致,z=a+bj,a是实数部分,b是虚数部分,a和b都是浮点

28、类型,虚数部分用j或者J标识n 示例:12.3+4j,-5.6+7j复数类型n z=1.23e-4+5.6e+89j(实部和虚部是什么?)n 对于复数z,可以用z.real获得实数部分,z.imag获得虚数部分n z.real=0.000123 z.imag=5.6e+89数字类型的操作内置的数值运算操作符n 三种类型存在一种逐渐“扩展”的关系:整数-浮点数-复数 (整数是浮点数特例,浮点数是复数特例)n 不同数字类型之间可以进行混合运算,运算后生成结果为最宽类型n 123+4.0=127.0 (整数+浮点数=浮点数)内置的数值运算操作符操作符描述x+yx与y之和x-yx与y之差x*yx与y之

29、积x/yx与y之商x/yx与y之整数商,即:不大于x与y之商的最大整数x%yx与y之商的余数,也称为模运算-xx的负值,即:x*(-1)+xx本身x*yx的y次幂,即:xy内置的数值运算操作符数字类型之间相互运算所生成的结果是“更宽”的类型,基本规则是:l整数之间运算,如果数学意义上的结果是小数,结果是浮点数;l整数之间运算,如果数学意义上的结果是整数,结果是整数;l整数和浮点数混合运算,输出结果是浮点数;l整数或浮点数与复数运算,输出结果是复数。内置的数值运算函数Python解释器提供了一些内置函数,在这些内置函数之中,有6个函数与数值运算相关 函数描述abs(x)x的绝对值divmod(x

30、,y)(x/y,x%y),输出为二元组形式(也称为元组类型)pow(x,y,z)(x*y)%z,.表示该参数可以省略,即:pow(x,y),它与x*y相同round(x,ndigits)对x四舍五入,保留ndigits位小数。round(x)返回四舍五入的整数值max(x1,x2,xn)x1,x2,xn的最大值,n没有限定min(x1,x2,xn)x1,x2,xn的最小值,n没有限定数字类型的转换函数描述int(x)将x转换为整数,x可以是浮点数或字符串float(x)将x转换为浮点数,x可以是整数或字符串complex(re,im)生成一个复数,实部为re,虚部为im,re可以是整数、浮点数

31、或字符串,im可以是整数或浮点数但不能为字符串数值运算操作符可以隐式地转换输出结果的数字类型例如,两个整数采用运算符“/”的除法将可能输出浮点数结果。此外,通过内置的数字类型转换函数可以显式地在数字类型之间进行转换 数字类型的转换n 三种类型可以相互转换 函数:int(),float(),complex()n 示例:n int(4.5)=4(直接去掉小数部分)n float(4)=4.0(增加小数部分)n complex(4)=4+0J数字类型的转换n 示例:complex(4.5)=4.5+0J数字类型的判断n 函数:type(x),返回x的类型,适用于所有类型的判断n 示例:math库的使

32、用math库概述n math库是Python提供的内置数学类函数库n math库不支持复数类型n math库一共提供了4个数学常数和44个函数。n44个函数共分为4类,包括:16个数值表示函数、8个幂对数函数、16个三角对数函数和4个高等特殊函数math库概述首先使用保留字import引用该库 第一种:import math 对math库中函数采用math.()形式使用 第二种,from math import 对math库中函数可以直接采用()形式使用import mathmath.ceil(10.2)11from math import floorfloor(10.2)10math库解析n

33、 math库包括4个数学常数常数数学表示描述math.pi圆周率,值为3.141592653589793math.ee自然对数,值为2.718281828459045math.inf正无穷大,负无穷大为-math.infmath.nan 非浮点数标记,NaN(Not a Number)math库解析n math库包括16个数值表示函数函数数学表示描述math.fabs(x)返回x的绝对值math.fmod(x,y)x%y返回x与y的模math.fsum(x,y,)x+y+浮点数精确求和math.ceil(x)向上取整,返回不小于x的最小整数math.floor(x)向下取证,返回不大于x的最大

34、整数math.factorial(x)x!返回x的阶乘,如果x是小数或负数,返回ValueErrormath.gcd(a,b)返回a与b的最大公约数math.frepx(x)x=m*2e返回(m,e),当x=0,返回(0.0,0)math.ldexp(x,i)x*2i返回x*2i运算值,math.frepx(x)函数的反运算math.modf(x)返回x的小数和整数部分math.trunc(x)返回x的整数部分math.copysign(x,y)用数值y的正负号替换数值x的正负号math.isclose(a,b)比较a和b的相似性,返回True或Falsemath.isfinite(x)当x为

35、无穷大,返回True;否则,返回False math.isinf(x)当x为正数或负数无穷大,返回True;否则,返回Falsemath.isnan(x)当x是NaN,返回True;否则,返回Falsemath库解析n math库中包括8个幂对数函数函数数学表示描述math.pow(x,y)xy返回x的y次幂math.exp(x)ex返回e的x次幂,e是自然对数 math.expml(x)ex-1返回e的x次幂减1math.sqrt(x)返回x的平方根math.log(x,base)math.log1p(x)返回1+x的自然对数值math.log2(x)返回x的2对数值math.log10(x

36、)返回x的10对数值math库解析n math库包括六个“三角双曲函数函数数学表示描述math.degree(x)角度x的弧度值转角度值math.radians(x)角度x的角度值转弧度值math.hypot(x,y)返回(x,y)坐标到原点(0,0)的距离math.sin(x)sin x返回x的正弦函数值,x是弧度值math.cos(x)cos x返回x的余弦函数值,x是弧度值math.tan(x)tan x返回x的正切函数值,x是弧度值math.asin(x)arcsin x返回x的反正弦函数值,x是弧度值math.acos(x)arccos x返回x的反余弦函数值,x是弧度值 math.

37、atan(x)arctan x返回x的反正切函数值,x是弧度值math.atan2(y,x)arctan y/x返回y/x的反正切函数值,x是弧度值math.sinh(x)sinh x返回x的双曲正弦函数值math.cosh(x)cosh x返回x的双曲余弦函数值math.tanh(x)tanh x返回x的双曲正切函数值math.asinh(x)arcsinh x返回x的反双曲正弦函数值math.acosh(x)arccosh x返回x的反双曲余弦函数值math.atanh(x)arctanh x返回x的反双曲正切函数值math库解析n math库包括4个高等特殊函数函数数学表示描述math.

38、erf(x)高斯误差函数,应用于概率论、统计学等领域math.erfc(x)余补高斯误差函数,math.erfc(x)=1-math.erf(x)math.gamma(x)伽玛(Gamma)函数,也叫欧拉第二积分函数math.lgamma(x)ln(gamma(x)伽玛函数的自然对数实例3:天天向上的力量实例代码3.1:天天向上一年365天,以第1天的能力值为基数,记为1.0,当好好学习时能力值相比前一天提高1,当没有学习时由于遗忘等原因能力值相比前一天下降1。每天努力和每天放任,一年下来的能力值相差多少呢?实例代码3.1:天天向上n 运行结果如下,每天努力1,一年下来将提高44%,好像不多?

39、请继续分析。实例代码3.1e3.1DayDayUp365.py 12345#e3.1DayDayUp365.pyimport mathdayup=math.pow(1.0+0.001),365)#提高提高0.001daydown=math.pow(1.0-0.001),365)#放任放任0.001print(向上向上:.2f,向下向下:.2f.format(dayup,daydown)实例代码3.2:天天向上一年365天,如果好好学习时能力值相比前一天提高5,当放任时相比前一天下降5。效果相差多少呢?实例代码3.2:天天向上n 运行结果如下,每天努力5,一年下来将提高6倍!这个,不容小觑了吧?

40、实例代码3.2e3.2DayDayUp365.py 12345#e3.2DayDayUp365.pyimport mathdayup=math.pow(1.0+0.005),365)#提高提高0.005daydown=math.pow(1.0-0.005),365)#放任放任0.005print(向上向上:.2f,向下向下:.2f.format(dayup,daydown)实例代码3.3:天天向上一年365天,如果好好学习时能力值相比前一天提高1%,当放任时相比前一天下降1%。效果相差多少呢?实例代码3.3:天天向上n 运行结果如下,每天努力1%,一年下来将提高37倍。这个相当惊人吧!实例代码

41、3.3e3.3DayDayUp365.py 123456#e3.3DayDayUp365.pyimport mathdayfactor=0.01dayup=math.pow(1.0+dayfactor),365)#提高提高dayfactordaydown=math.pow(1.0-dayfactor),365)#放任放任dayfactorprint(向上向上:.2f,向下向下:.2f.format(dayup,daydown)实例代码3.4:天天向上一年365天,一周5个工作日,如果每个工作日都很努力,可以提高1%,仅在周末放任一下,能力值每天下降1%,效果如何呢?实例代码3.4:天天向上n

42、猜猜运行结果?每周努力5天,而不是每天,一年下来,水平仅是初始的4.63倍!与每天坚持所提高的237倍相去甚远实例代码3.4e3.4DayDayUp365.py 12345678#e3.4DayDayUp365.pydayup,dayfactor=1.0,0.01for i in range(365):if i%7 in 6,0:#周六周日周六周日dayup=dayup*(1-dayfactor)else:dayup=dayup*(1+dayfactor)print(向上向上5天向下天向下2天的力量天的力量:.2f.format(dayup)实例代码3.5:天天向上如果对实例代码3.4的结果感

43、到意外,那自然会产生如下问题:每周工作5天,休息2天,休息日水平下降0.01,工作日要努力到什么程度一年后的水平才与每天努力1%所取得的效果一样呢?实例代码3.5:天天向上n 如果每周连续努力5天,休息2天,为了达到每天努力1%所达到的的水平,则就需要在工作日将提高的程度达到约2%,即要努力1倍才仅是为了休息2天。n 这就是天天向上的力量!实例代码3.5e3.5DayDayUp365.py 12345678910111213#e3.5DayDayUp365.pydef dayUP(df):dayup=0.01for i in range(365):if i%7 in 6,0:dayup=day

44、up*(1-0.01 df)else:dayup=dayup*(1+df)return dayupdayfacotr=0.01while(dayUP(dayfactor)37.78):dayfactor+=0.001print(每天的努力参数是每天的努力参数是:.3f.format(dayfactor)字符串类型及其操作字符串类型n 字符串是用双引号或者单引号括起来的一个或多个字符。n 字符串可以保存在变量中,也可以单独存在。n 可以用type()函数测试一个字符串的类型字符串类型n Python语言转义符:n 输出带有引号的字符串,可以使用转义符n使用 输出带有转移符的字符串字符串类型n 字

45、符串是一个字符序列:字符串最左端位置标记为0,依次增加。字符串中的编号叫做“索引”字符串类型n 单个索引辅助访问字符串中的特定位置 格式为字符串类型n Python中字符串索引从0开始,一个长度为L的字符串最后一个字符的位置是L-1n Python同时允许使用负数从字符串右边末尾向左边进行反向索引,最右侧索引值是-1字符串类型n 可以通过两个索引值确定一个位置范围,返回这个范围的子串 格式::n start和end都是整数型数值,这个子序列从索引start开始直到索引end结束,但不包括end位置。字符串类型n 字符串之间可以通过+或*进行连接n加法操作(+)将两个字符串连接成为一个新的字符串

46、n乘法操作(*)生成一个由其本身字符串重复连接而成的字符串字符串类型n len()函数能否返回一个字符串的长度字符串类型的转换n 大多数数据类型都可以通过str()函数转换为字符串字符串使用实例输入一个月份数字,返回对应月份名称缩写 这个问题的IPO模式是:输入:输入一个表示月份的数字(1-12)处理:利用字符串基本操作实现该功能 输出:输入数字对应月份名称的缩写字符串使用实例n 将所有月份名称缩写存储在字符串中n 在字符串中截取适当的子串来查找特定月份n 找出在哪里切割子串n 每个月份的缩写都由3个字母组成,如果pos表示一个月份的第一个字母,则monthspos:pos+3表 示这个月份的

47、缩写,即:n monthAbbrev=monthspos:pos+3字符串使用实例 月份 字符串中位置Jan 1 0Feb 2 3Mar 3 6Apr 4 9字符串使用实例可以通过 for 和 in 组成的循环来遍历字符串中每个字符n格式如下:for in:操作字符串的操作用转义符可以在字符串中表达一些不可直接打印的信息例如:用n表示换行n 字符串HellonWorldnnGoodbye 32nn 用print()函数打印后的输出效果如下:HelloWorldGoodbye 32字符串的操作内置的字符串处理函数操作含义+连接*重复 索引:剪切len()长度.upper()字符串中字母大写.lo

48、wer()字符串中字母小写.strip()去两边空格及去指定字符.split()按指定字符分割字符串为数组.join()连接两个字符串序列.find()搜索指定字符串.replace()字符串替换for in 字符串迭代内置的字符串处理函数微实微实例例3.2:恺撒密码。:恺撒密码。凯撒密码是古罗马凯撒大帝用来对军事情报进行加密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列该字符后面第三个字符,对应关系如下:原文:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z密文:D E F G H I J K L M N O P Q

49、 R S T U V W X Y Z A B C原文字符P,其密文字符C满足如下条件:C=(P+3)mod 26解密方法反之,满足:P=(C 3)mod 26内置的字符串处理函数微实例3.2m3.2 CaesarCode.py 1234567plaincode=input(请输入明文请输入明文:)for p in plaincode:if ord(a)=ord(p)请输入明文:python is an excellent language.sbwkrq lv dq hafhoohqw odqjxdjh.微实例运行结果如下:内置的字符串处理方法方法描述str.lower()返回字符串str的副本

50、,全部字符小写str.upper()返回字符串str的副本,全部字符大写str.islower()当str所有字符都是小写时,返回True,否则Falsestr.isprintable()当str所有字符都是可打印的,返回True,否则Falsestr.isnumeric()当str所有字符都是字符时,返回True,否则Falsestr.isspace()当str所有字符都是空格,返回True,否则Falsestr.endswith(suffix,start,end)strstart:end 以suffix结尾返回True,否则返回Falsestr.startswith(prefix,star

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(教学课件:《Python语言程序设计基础(第2版).ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|