Python第二次课0319高教书苑

上传人:沈*** 文档编号:153298179 上传时间:2022-09-18 格式:PPT 页数:45 大小:1.26MB
收藏 版权申诉 举报 下载
Python第二次课0319高教书苑_第1页
第1页 / 共45页
Python第二次课0319高教书苑_第2页
第2页 / 共45页
Python第二次课0319高教书苑_第3页
第3页 / 共45页
资源描述:

《Python第二次课0319高教书苑》由会员分享,可在线阅读,更多相关《Python第二次课0319高教书苑(45页珍藏版)》请在装配图网上搜索。

1、12008.0522008.053本次课主要内容4种数字类型的概念和使用种数字类型的概念和使用一各类型数字在计算机中的表示方法各类型数字在计算机中的表示方法二Python数学库和随机库的使用数学库和随机库的使用三循环结构循环结构简介简介五分支结构简介分支结构简介四第3页42008.05数字类型数字类型v 当用户向计算机输入当用户向计算机输入123123,计算机需要明确的知道这个输入是可以进行,计算机需要明确的知道这个输入是可以进行数学计算的数字数学计算的数字123123,还是类似人名的字符串,还是类似人名的字符串“123123”,这两者在计算,这两者在计算机内部采用不一样的存储方式。这个需求产

2、生了机内部采用不一样的存储方式。这个需求产生了“数据类型数据类型”的概念的概念v 数据类型表示信息在计算机中的不同存储方式,进而决定了处理过程数据类型表示信息在计算机中的不同存储方式,进而决定了处理过程中信息的类型和功能。中信息的类型和功能。PythonPython语言中,语言中,123123表示一个数字,表示一个数字,“123123”表表示一个字符串。其中,表示数字的数据类型也叫数字类型,本节主要示一个字符串。其中,表示数字的数据类型也叫数字类型,本节主要介绍数字类型介绍数字类型第5页数字类型数字类型v PythonPython的的4 4种数字类型种数字类型n整数:长度不超过计算机字长的整数

3、:长度不超过计算机字长的“普通普通”整数。对于整数。对于6464位字长的位字长的计算机,整数的取值范围是计算机,整数的取值范围是-2-26363,2,26363-1-1 例:例:1010,991010,99,-217-217,0 x9a0 x9a,-0 x89-0 x89 整数可以表示为十进制,也可表示为十六进制等其他进制方式。整数可以表示为十进制,也可表示为十六进制等其他进制方式。0 x0 x开头的数字表示十六进制数字开头的数字表示十六进制数字n长整数:超过整数类型表示范围的整数,数字后面加长整数:超过整数类型表示范围的整数,数字后面加”L”L”或或”l”l”,为免混淆,建议使用,为免混淆,

4、建议使用“L L”例:例:1010L,-217L,0 x9a,0 x1234567890abcdeedL1010L,-217L,0 x9a,0 x1234567890abcdeedL第6页数字类型数字类型v PythonPython的的4 4种数字类型种数字类型n浮点实数:带有小数的数值,十进制或科学计数法表示浮点实数:带有小数的数值,十进制或科学计数法表示 例:例:0.0,-77.,-2.17,96e4,4.3e-3,9.6E50.0,-77.,-2.17,96e4,4.3e-3,9.6E5 科学计数法使用字母科学计数法使用字母“e e”或者或者“E E”作为幂的符号,以作为幂的符号,以10

5、10为基数。科学计为基数。科学计数法含义如下:数法含义如下:e=a e=a*10 10b b 4.3e-3 4.3e-3表示表示0.00430.0043n复数:复数:a+bja+bj,a a是实数部分,是实数部分,b b是虚数部分,是虚数部分,a a、b b皆是浮点类型,皆是浮点类型,叙述部分通过后缀叙述部分通过后缀“J J”或或“j j”来表示来表示 例:例:12.3+4j,-5.6+7j,1.23e-4+5.6e+89j12.3+4j,-5.6+7j,1.23e-4+5.6e+89j第7页数字类型数字类型v 对整数和浮点数处理方法中应注意对整数和浮点数处理方法中应注意n0.00.0与与0

6、0值相同,但数据结构不同值相同,但数据结构不同n整数与整数运算后,结果为整数;长整数与整数运算后,为长整整数与整数运算后,结果为整数;长整数与整数运算后,为长整数;浮点数与其他类型运算后,为浮点数数;浮点数与其他类型运算后,为浮点数,例如例如10/3=310/3=310L/3=3L10L/3=3L10.0/3=3.33310.0/3=3.333n浮点类型不能采用十六进制方式表示浮点类型不能采用十六进制方式表示v type()type()函数可以返回用户提供的输入函数可以返回用户提供的输入的类型的类型例如例如 type(10)type(10)第8页数字类型数字类型 type(10L)type(1

7、0L)type(10.0)type(10.0)type(10+10j)type(10+10j)n实际上,实际上,type()type()函数可以返回任何函数可以返回任何PythonPython定义的数据类型,而不局限定义的数据类型,而不局限于数字类型于数字类型第9页数字类型的转换数字类型的转换v 数字类型之间的转换规则数字类型之间的转换规则nPythonPython提供了一些数字转换函数:提供了一些数字转换函数:int()int()、long()long()、float()float()、complex()complex()n整数、长整数和浮点数之间可自由转换,浮点数转换为其他两种整数、长整数

8、和浮点数之间可自由转换,浮点数转换为其他两种类型时,小数部分会被舍弃类型时,小数部分会被舍弃 long(10.4)long(10.4)10L 10Lint(10.999)int(10.999)1010第10页数字类型的转换数字类型的转换n函数函数complex()complex()可将其他类型转为复数,但复数不可转为其他类型,可将其他类型转为复数,但复数不可转为其他类型,例如例如 complex(10.999)complex(10.999)(10.999+0j)(10.999+0j)intint(10+10j)#(10+10j)#将会报错将会报错 TracebackTraceback(most

9、 recent call last):(most recent call last):File,line 1,in File,line 1,in intint(10+10j)(10+10j)TypeErrorTypeError:cant convert complex to:cant convert complex to intint数字类型转换在进行数学运算的时候十分重要,当需要包含小数的除数字类型转换在进行数学运算的时候十分重要,当需要包含小数的除法结果时,要用浮点类型而不是整数类型法结果时,要用浮点类型而不是整数类型第11页数字类型的操作数字类型的操作v PythonPython中数字类

10、型的操作中数字类型的操作操作操作操作含义操作含义x+yx与y之和x-yx与y之差x*yx与y之积x/yx与y之商x/y不大于x与y之商的最大整数x%yx对y的模运算abs(x)x的绝对值divmod(x,y)(x/y,x%y)pow(x,y)x的y次幂x*yx的y次幂第12页数字类型的操作数字类型的操作v数字类型操作举例数字类型操作举例8.0/38.0/32.66666662.66666668.0/38.0/32.02.0divmod(8.0,3)divmod(8.0,3)(2.0,2.0)(2.0,2.0)abs(-8.63)abs(-8.63)8.638.63pow(8,2)pow(8,2

11、)6464第13页示例程序示例程序1 1:的计算的计算v 蒙塔卡罗蒙塔卡罗(Monte Carlo)(Monte Carlo)方法,又称随机抽样或统计试验方法。当所方法,又称随机抽样或统计试验方法。当所要求解的问题是某种事件出现的概率,或某随机变量的期望值时,可要求解的问题是某种事件出现的概率,或某随机变量的期望值时,可以通过某种以通过某种“试验试验”的方法求解。的方法求解。v 应用蒙瑞特卡罗方法求解应用蒙瑞特卡罗方法求解的步骤:随即向单位正方形和圆结构抛洒的步骤:随即向单位正方形和圆结构抛洒大量点,判断每个点在圆内或者圆外,圆内点数除以圆外点数就是大量点,判断每个点在圆内或者圆外,圆内点数除

12、以圆外点数就是值。随机点数量越大,得到的值。随机点数量越大,得到的值越精确。值越精确。v 问题的问题的IPOIPO表示如下:表示如下:n输入:抛点数输入:抛点数n处理:计算每个点到圆心的距离,统计在圆内点的数量处理:计算每个点到圆心的距离,统计在圆内点的数量n输出:输出:值值第14页示例程序示例程序1 1:的计算的计算第15页示例程序示例程序1 1:的计算的计算v 采用蒙塔卡罗方法求解采用蒙塔卡罗方法求解值的值的PythonPython程序如下:程序如下:#m_pi.pyfrom random import randomfrom math import sqrtfrom time import

13、 clockDARTS=1000hits=0.0clock()for I in range(1,DARTS):x,y=random(),random()dist=sqrt(x*2+y*2)if dist m_pi.pym_pi.pypi is 3.208pi is 3.208running time is 0.006srunning time is 0.006sv 由于由于DARTSDARTS点数量较少,点数量较少,的值不是很精确。通过增加的值不是很精确。通过增加DARTSDARTS数量继续数量继续试验,在试验,在2 23030数量级上,数量级上,的值就相对准确了。进一步增加的值就相对准确了。

14、进一步增加DARTSDARTS数量,数量,能够进一步增加精度能够进一步增加精度第17页数学库及其使用数学库及其使用vmathmath库中常用的数学函数库中常用的数学函数函数函数数学表示数学表示含义含义pi的近似值,15位小数eee的近似值,15位小数ceil(x)x向上取整floor(x)x向下取整pow(x,y)xy指数运算,x的y次方log(x)lg x对数,以e为基log10(x)log10 x对数,以10为基sqrt(x)平方根x第18页数学库及其使用数学库及其使用函数函数数学表示数学表示含义含义exp(x)exx次幂,以e为基degrees(x)弧度转换成角度radians(x)角度

15、转换成弧度sin(x)sin x正弦函数cos(x)cos x余弦函数tan(x)tan x正切函数asin(x)arcsin x反正弦函数,x-1.0,1.0acos(x)arccos x反余弦函数,x-1.0,1.0atan(x)arctan x反正切函数,x-1.0,1.0第19页数学库及其使用数学库及其使用v 上述函数封装在上述函数封装在mathmath库中,对库函数引用方式库中,对库函数引用方式:nimport import .例例 import mathimport math math.ceil(1.2)math.ceil(1.2)2.0 2.0nfrom from import

16、import 例例 from math import ceil,floor from math import ceil,floor ceil(1.2)ceil(1.2)2.0 2.0n若希望引用更多库中函数并直接使用:若希望引用更多库中函数并直接使用:from math import from math import*第20页随机数库及其使用随机数库及其使用vRandomRandom库中常用的函数库中常用的函数函数函数含义含义seed(x)给随机数一个种子值,默认为系统时钟random()生成一个0,1.0)之间的随机小数uniform(a,b)生成一个a到b之间的随机小数randint(a,

17、b)生成一个a到b之间的随机整数randrange(a,b,c)随机生成一个从a开始到b以c递增的数choice()从序列(例如:列表)中随机返回一个元素shuffle()将一个列表中元素随机打乱sample(,k)从指定序列中随机获取k个元素第21页随机数库及其使用随机数库及其使用v 引用引用randomrandom库函数举例库函数举例 from random import from random import*random random 0.7580946277254204 0.7580946277254204 uniform(1,10)uniform(1,10)2.31646154252

18、7591 2.316461542527591 randint(1,10)randint(1,10)5 5 randrange(0,10,4)#randrange(0,10,4)#从从0 0开始到开始到1010以以4 4递增的元素中随机返回递增的元素中随机返回 4 4 ra=range(10)ra=range(10)0,1,2,3,4,5,6,7,8,9 0,1,2,3,4,5,6,7,8,9第22页随机数库及其使用随机数库及其使用 choice(ra)choice(ra)7 7 shuffle(ra)#shuffle(ra)#随机改变随机改变rara的顺序的顺序 ra ra 5,0,6,7,4

19、,9,8,1,3,2 5,0,6,7,4,9,8,1,3,2 sample(ra,4)sample(ra,4)8,7,0,6 8,7,0,6 seed(10)#seed(10)#以以1010为种子为种子 uniform(1,10)uniform(1,10)6.142623352209221 6.142623352209221 uniform(1,10)uniform(1,10)4.860001492076032 4.860001492076032 第23页随机数库及其使用随机数库及其使用 seed(10)#seed(10)#再次设定种子为再次设定种子为1010 uniform(1,10)uni

20、form(1,10)6.142623352209221 6.142623352209221 uniform(1,10)uniform(1,10)4.860001492076032 4.860001492076032v 设定相同的种子后,每次调用随机函数生成的随机数都是设定相同的种子后,每次调用随机函数生成的随机数都是相同的。相同的。v 随机种子的作用:相同的种子产生相同的伪随机数序列,随机种子的作用:相同的种子产生相同的伪随机数序列,便于通过相同的随机数进行验证便于通过相同的随机数进行验证第24页252008.05(一)(一)PM2.5PM2.5指数分级例子指数分级例子#pm25.py#空气质

21、量提醒空气质量提醒.def main():PM=input(What is todays PM2.5?)#打印相应提醒打印相应提醒if PM 75:print(Unhealthy.Be careful!)if fahrenheit 75打印空气污染警告打印空气污染警告if PM2.5值值 35打印空气质量优,建议户外运动打印空气质量优,建议户外运动第27页(一)(一)PM2.5PM2.5指数分级例子指数分级例子流程图流程图第28页(二)(二)ifif语句格式语句格式语句格式如下语句格式如下if:其中其中是一个或多个语句序列是一个或多个语句序列先判断先判断条件:条件:l True,则执行,则执行

22、body,再转向下一条,再转向下一条语句;语句;l False,则直接跳过,则直接跳过body,转向下一,转向下一条语句;条语句;第29页(三)简单条件构造(三)简单条件构造l 简单条件基本形式简单条件基本形式 l 是关系操作符是关系操作符,=,!=l 使用使用“=”表示赋值语句,使用表示赋值语句,使用“=”表示等于表示等于l 是布尔表达式,为是布尔表达式,为boolbool类型,值类型,值truetrue或或falsefalse以以True和和False表示表示l 除数字外,除数字外,字符或字符串也可以用于条件比较字符或字符串也可以用于条件比较第30页(三)简单条件构造(关系运算符的使用)(

23、三)简单条件构造(关系运算符的使用)3 3*4 hello=helloTrue hello Hello helloTrue第31页(四)复杂条件的构造(四)复杂条件的构造l 分支和循环结构中都有可能需要使用较为复杂的条件分支和循环结构中都有可能需要使用较为复杂的条件进行控制进行控制l 仅使用关系运算符无法表达一些完整信息仅使用关系运算符无法表达一些完整信息l 例如:闰年的判断例如:闰年的判断l 字母字符的判断字母字符的判断l 需要借助于布尔操作符构造出复杂条件需要借助于布尔操作符构造出复杂条件第32页布尔操作符布尔操作符l 布尔操作符:布尔操作符:and,or和和 notl 布尔运算符布尔运算

24、符and和和or用于组合两个布尔表达式,并产用于组合两个布尔表达式,并产生一个布尔结果生一个布尔结果n and n or l not运算符计算一个布尔表达式的反运算符计算一个布尔表达式的反nnot 第33页布尔操作结果布尔操作结果PQP and QP or Qnot PTrueTrueTrueTrueFalseTrueFalseFalseTrueFalseFalseTrueFalseTrueTrueFalseFalseFalseFalseTrue第34页布尔操作符布尔操作符l a or not b and cl Python中布尔中布尔操作操作符的优先级,从高分到低分依次符的优先级,从高分到低

25、分依次是是not、and最低是最低是or。所以上面的达式等于如下这。所以上面的达式等于如下这个带括号的版本:个带括号的版本:l(a or (not b)and c)l 例如:闰年的判断例如:闰年的判断l Y%400=0 or y%4=0 and y%100!=0l 例如:字母字符的判断例如:字母字符的判断l C=A and C=a and C=z第35页362008.05forfor循环循环l Python可以使用可以使用for语句循环遍历整个序列的值语句循环遍历整个序列的值for in :l 在在for循环中,循环变量循环中,循环变量var遍历了队列中的每一遍历了队列中的每一个值,循环的语句

26、体为每个值执行一次。个值,循环的语句体为每个值执行一次。第37页forfor循环循环-求平均数求平均数l 平均数计算程序的平均数计算程序的IPO如下如下:输入:待输入数字个数,数字输入:待输入数字个数,数字处理:平均数算法处理:平均数算法输出:平均数输出:平均数l 通用设计方案通用设计方案:输入数字的个数输入数字的个数n将将sum初始化为初始化为0循环循环n次:次:输入数字输入数字x将将x加入加入sum中中将将sum/n作为平均数输出出来作为平均数输出出来第38页forfor循环循环-代码代码#average1.pyn =input(How many numbers?)sum =0.0for

27、i in range(n):x =input(Enter a number )sum =sum +xprint nThe average is,sum /n第39页forfor循环循环-执行执行以下是程序的执行过程。以下是程序的执行过程。How many numbers?5Enter a number 32Enter a number 45Enter a number 34Enter a number 76Enter a number 45The average is 46.4第40页forfor循环循环-缺点缺点l 程序开始时必须提供输入数字总数程序开始时必须提供输入数字总数l 大规模数字求

28、平均值需要用户先数清楚个数大规模数字求平均值需要用户先数清楚个数l for循环是循环是需要提供固定循环次数需要提供固定循环次数循环循环l Python提供了另一种循环模式即无限循环,不提供了另一种循环模式即无限循环,不需要提前知道循环次数需要提前知道循环次数第41页无限循环无限循环l 语法:语法:while语句语句while :l while语句中语句中是布尔表达式是布尔表达式l 是一条或多条语句是一条或多条语句l当条件为真时,循环体重复执行l当条件为假时,循环终止l 条件总是在循环顶部被判断,即在循环体执行之条件总是在循环顶部被判断,即在循环体执行之前前,这种结构又被称为前测循环这种结构又被称为前测循环第42页无限循环无限循环i=0 while i=10print(i)i=i+1l 如果循环体忘记累加如果循环体忘记累加i,条件判,条件判断一直为真,循环体将一直执行断一直为真,循环体将一直执行,这就是所谓的死循环程序,这就是所谓的死循环程序l 这时这时通常通常使用使用-c来终止来终止一个程序一个程序第43页第44页第44页452008.05谢谢大家!谢谢大家!

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!