版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章
常用运算Python程序设计本章要点成员运算算术运算比较运算逻辑运算运算优先级DeepSeek的使用学习目标了解Python中算术、比较、成员和逻辑运算的基本规则;理解运算符优先级及逻辑表达式的短路求值特性;掌握常用算术运算、math库函数的使用及数值计算方法;熟悉真值测试与格式规范的表达式编写,培养计算思维和严谨求实的科学态度。1算术运算算术运算符与表达式Python内置了7个基本的数值运算操作符,在运算过程中可以直接使用运算符功能描述实例+加:两个对象相加print(a+b)#结果为13-减:两个对象相减或得到负数print(a-b)#结果为3*乘:两个数相乘print(a*b)#结果为40/除:两个数相除print(a/b)#结果为1.6//整除:返回商的整数部分print(a//b)#结果为1print(-10//4)#结果为-3%取模:a%b=a-(a//b)*bprint(a%b)#结果为3print(-10//3)#结果为2**幂:返回x的y次幂print(a**b)#结果为32768算术运算符与表达式精确除法(/),直接进行除法运算,得到浮点数的运算结果。整除(//),
采用的是向下取整的算法得到整数结果。print(12/4)#精确除的结果永远为浮点数3.0print(10//4)#取负无穷大方向最接近2.5的那个整数2print(10.0//4)#2.0,结果为浮点类型的整数print(-10/4)#-2.5print(-10//4)#取负无穷大方向最接近-2.5的那个整数-3算术运算符与表达式%运算符是取模运算,其运算意义是a整除b得到余数,(r=a-(a//b)*b)。print(11%4)#输出:3print(11%-4)#输出:-1print(3.5%-2)#输出:-0.5print(4%-2)
#输出:0print(-11%4)#输出:1print(-11%-4)#输出:-3算术运算符与表达式Python中幂运算与数学上的形式不同,不是ab,而是a**b,用两个星号“**”表示幂运算。幂运算优先级比取反运算高。如,-3**2先进行幂运算,再取反,最终的值为-9。为了避免优先级问题,可以在合适的地方加括号以保证运算顺序。-(3**2)先幂运算再取反,结果为-9;(-3)**2则先取反,再进行幂运算,结果为9。算术运算符与表达式表达式是用运算符将对象连接起来构成的式子,程序设计中表达式的写法与数学中的表达式稍有不同,需要按照程序设计语言规定的表示方法构造表达式。在复杂表达式中适当加括号是较好的编程习惯,既可以确保运算按自己预定的顺序进行,又提高程序的可读性和可维护性。实例
3.1求直角三角形的斜边编写程序,能够根据用户输入直角三角形的两条直角边长度,计算并输出其斜边的长度。①程序需要接收用户输入的两条直角边长度(均为正整数)。②运用勾股定理计算斜边。③a²+b²=c²需转换为c=(a**2+b**2)**(1/2),注意分子里(1/2)的括号不可以省略,因为幂运算优先级高于除法运算,没有括号时会先计算1次幂,再除以2,计算顺序错误。为避免这个问题,可以将(1/2)改写为0.5。④输出计算得到的斜边长度。分析常用数学运算函数Python内置了一系列与数学运算相关的函数,可以直接使用。详见教材表3.2,示例:pow(x,y[,z])函数在进行幂运算的同时可以进行模运算。round(number[,n])函数的作用是把浮点数number转换成保留n位小数的形式,n为整数,缺省值是0,当省略参数n时,返回最接近输入数字的整数。当n超过小数位数时,返回该数的最短表示。常用数学运算函数print(round(3.1415))#3print(round(3.6415))#4print(round(3.0000,2))
#期望输出3.00,实际输出其浮点数的最短表示3.0
print(round(3.14,4))#期望输出3.1400,实际输出3.14print(round(3.1250001,2))#3.13五后非零就进一print(round(3.125,2))#3.12五前为偶应舍去print(round(3.115,2))#3.12五前为奇要进一#绝大多数浮点数无法精确转为二进制导致取舍与期望不符#0.1425计算机中存0.14250000000000002print(round(3.1425,3))#期望输出3.142实际输出3.143print(round(2.675,2))#期望输出2.68实际输出2.67round()末位取舍规则:过5入,不及舍;恰好为5看奇偶。math模块及其应用在数学运算之中,除了加、减、乘、除运算之外,还有其他更多的运算,比如乘方、开方、对数运算等等,要实现这些运算,可以使用Python中的Math模块。模块(module)是Python中非常重要的东西,可以把它理解为Python的扩展工具,可提供面向特定领域或方向的程序功能。Python安装好之后,默认安装了一些模块,称为“标准库”,“标准库”中的模块不需要安装就可以直接使用。没有纳入标准库的模块,需要使用“pipinstall模块名”安装之后才能使用。math模块及其应用Python中导入库/模块的方法有两种。1)导入库/模块名,语法格式如下:
import<库/模块名>程序可以调用库/模块名中的所有函数,调用库/模块中函数时,需明确指出函数所在的库/模块的名称,格式如下:
<库/模块名>.<函数名>(<函数参数>)importmath#导入math模块,引用其中的函数时需要用在函数名前面加“math.”r=2area=math.pi*r*r#计算半径为5的圆的面积print(math.pi)
#输出math模块中的pi值3.141592653589793print(area)
#输出圆的面积12.566370614359172math库及其应用Python中导入库/模块的方法有两种。2)直接导入库/模块中的函数,可以同时引用多个函数,各函数间用逗号分隔,也可以用通配符“*”,表示引入该库/模块中的所有函数,语法如下:from<库/模块名>import<函数名,函数名,...,函数名>from<库/模块名>import*#其中*是通配符,代表该库/模块中所有函数
调用该库/模块的函数时不需要指明函数所在库/模块的名称,格式如下:<函数名>(<函数参数>)frommathimportpi,sqrt#导入math中的常数pi和sqrt()函数,直接引用函数名#frommathimport*#导入math模块中的所有函数,引用时直接引用函数名r=2area=pi*r*r#计算半径为5的圆的面积print(pi)#输出math模块中的pi值3.141592653589793print(area)#输入圆的面积12.566370614359172print(sqrt(2))#输出2的平方根1.4142135623730951实例
3.2
计算公式的值根据下面公式计算并输出x的值,a和b的值由用户在两行中输入,括号里的数值是角度值,要求圆周率的值使用数学常数math.pi,三角函数的值用math库中对应的函数进行计算。请编程计算并输出表达式的值。
分析2比较运算比较运算比较运算用于比较两个值或对象,并确定它们之间的关系,结果是一个逻辑值:True或False。运算符描述实例(a=5,b=10)==等于:比较a、b两个对象是否相等(a==b)返回值False!=不等于:比较a、b两个对象是否不相等(a!=b)返回值True>大于:若a大于b成立则返回True,否则返回Flase(a>b)返回值False<小于:若a小于b成立则返回True,否则返回Flase(a<b)返回值True>=大于等于:若a大于等于b成立则返回True,否则返回Flase(a>=b)返回值False<=小于等于:若a小于等于b成立则返回True,否则返回Flase(a<=b)返回值Trueisis是判断两个标识符是不是引用自一个对象c=10print(cisb)返回值Trueisnotisnot是判断两个标识符是不是引用自不同对象print(aisnotb)返回值True比较运算比较运算用于比较两个值或对象,并确定它们之间的关系,结果是一个逻辑值:True或False。注意数值类型会根据数字大小和正负进行比较,而字符串会根据字符串序列值进行比较。除不同种数值类型以外,不同类型的对象不能进行比较运算is与isnot用于比较两个对象是否为同一个对象,也就是比较两个对象的存储单元是否相同比较运算符,它们的优先级相同,且比布尔运算优先级高。比较运算符可以连续使用。比较运算关系表达式在问题求解中主要用于条件判定score=int(input())#比较score和60的大小,大于或等于60时输出pass,否则输出failifscore>=60:print('pass')else:print('fail')year=int(input())#如果year能被400整除,输出闰年ifyear%400==0:print('闰年')#如果year能被4整除,且不能被100整除,输出闰年ifyear%4==0:ifyear%100!=0:print('闰年')3成员运算成员运算成员运算:可以用于判断一个对象是否在某一个序列中notinin如果对象在某一个序列中存在,返回True,否则返回False如果对象在某一个序列中不存在,返回True,否则返回FalsePython中的成员运算使用语法是:obj
[not]in
sequence成员运算c=input()#如果c是字符串'13579'中的成员,输出c是奇数ifcin'13579':print(c,'是奇数')#如果c是字符串'0123456789'中的成员,输出n是数字ifcin'0123456789':print(c,'是数字')ifcnotin'abcdefghijklmnopqrstuvwxyz':print(c,'不是小写字母')目前Python中的成员运算主要用于判断一个字符是否属于某个字符串或可以判断一个数据对象是否在某个列表中4逻辑运算逻辑运算Python语言支持逻辑运算,包括“and(与)”、“or(或)”、“not(非)”运算。或:仅当x和y均为假,xory为假xory非:
用于反转操作数的逻辑状态,如果x为True,返回False。如果x为False,返回Truenotx与:仅当x和y均为真,xandy为真xandyorandnot逻辑运算示例:判定闰年的判定条件利用逻辑运算符将多个关系表达式合并成一个逻辑表达式。year=int(input())ifyear%400==0oryear%4==0andyear%100!=0:#能被400整除是闰年;能被4整除且同时不能被100整除的是闰年,and优先级高print(f'{year}年是闰年')else:print(f'{year}年是平年')逻辑运算x,y,z=3,4,4s1="student"print(xory)#输出3print(xandy)#输出4print(notx)#输出Falseprint(xandy-z)#输出0print(xory-z)#输出3print(nots1)#输出FalsePython判定真假方法是先计算表达式,其值为非零,则Python判定该表达式为真;其值为0,则Python判定该表达式为假。逻辑运算短路特性或惰性求值(1)在表达式xandy中,x为False时,它不计算y的值,直接返回x的值;当x的值为True时,y的值决定整个表达式的值,也就是说此时返回y值。(2)在表达式xory中,x为True时,它不计算y的值,直接返回x的值;当x的值为False时,y的值决定整个表达式的值,也就是说此时返回y值。birthdate=input('请输入出生日期:')or'保密'print(birthdate)#不输入,直接回车时,输出'保密'短路特性可以有效的避免无用地执行代码,可以作为一种技巧使用逻辑运算print(True==1)#输出Trueprint(False==0)#输出Trueprint(1==True)#输出回Trueprint(0==False)#输出Trueprint(5+True)#5+1,输出6print(True+False)#1+0,输出1print(True*5+False*2)#1*5+0*2,输出5Python用True表示真和False表示假,即关系表达式和逻辑表达式的值。Python允许使用数字“1”和“0”来代表True和Fasle的值,故True和Fasle可以直接参与数学运算。逻辑运算print(bool(Fraction(0,1)))#Fraction(0,1)表示分子为0的分数,即0/1,输出Falseprint(bool(Decimal(0)))#输出Falseprint(bool('hello'))#非空字符串,输出Trueprint(bool(100))#非0数字,输出Trueprint(bool(0.0))#数字0,输出Falseprint(bool(''))#空格是非空字符串,输出Trueprint(bool(''))#空字符串,输出Falseprint(bool([]))#空列表,输出Falseprint(bool(None))#None,输出FalsePython中,以下情形外的定义,逻辑值均为True(真):定义常量为None或者False。任何数值类型的0,包括:0、0.0、0j、Decimal(0)、Fraction(0,1))。空序列、空字典、空集合、空对象等,如:(),[],{},set(),range(0)。逻辑运算Python中一切都是对象,True和False是每个对象都具有的一种属性。Python视空的对象为False,相反所有非空对象则为True。None是一个特殊的常量,起到占位的作用,它有自己的数据类型NoneType。None的值不是False,不是0,不是空字符串。但None和任何其他的数据类型比较结果恒为False。5运算优先级运算优先级序号运算符描述1()括号,运算优先级最高2**幂运算3+x、-x、~正号、负号、按位翻转
4*、
/
、//、%乘法、除法、整除与取模5+
、-加法与减法6<<、>>移位7&按位与8^按位异或9|按位或10<、<=、>、>=、!=、==;
is、
isnotin、notin比较运算符同一性测试
成员测试11notx逻辑非12and逻辑运算符
13or逻辑运算符
14if-else条件表达式15lambda
lambda表达式16:=
赋值表达式(仅用于条件表达式中)不同运算符的优先等级各异,设计程序时要留意各运算符的优先等级;程序运行时依照优先级从高到低开展运算,优先级相同的运算符一般按从左至右的顺序进行运算;不同的计算次序会致使结果不同。运算优先级进行程序设计时,可以使用括号的优先级最高这一特性,强制表达式按照需要的顺序求值,括号中的表达式会优先执行。表达式中适当使用括号,则无需猜测和核对哪个运算符优先级更高,可降低编程者的记忆负担。pr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机械设计基础技术体系
- 科普可怕的细菌
- 白血病患者骨髓移植治疗方案
- 西南大学场地设计
- 心血管内科急性心肌梗死护理策略
- 酒泉市一级建造师考试模拟试题及答案(市政公用工程管理与实务)(2026年)
- 广西北海市2026年一级建造师(港口与航道工程管理与实务)模拟题含答案
- 2026年湖北专业技术职务水平能力测试(党建基础知识)练习试题及答案
- 互联网医疗行业标准化建设路径探索
- 急诊科患者安全管理
- 三年级数学下册《暑假作业》(共50套)
- 居民自建桩安装告知书回执
- 辅导员基础知识试题及答案
- 水利工程施工课程设计
- 公路隧道开挖施工技术规范
- DB14∕T 1925-2019 流通领域供应链标准体系
- 2022年中考语文12本名著导读考点梳理
- GB/T 30791-2014色漆和清漆T弯试验
- GB/T 25261-2010建筑用反射隔热涂料
- 噪声污染与控制
- 国家开放大学电大本科《离散数学》2023-2024期末试题及答案(试卷代号:1009)
评论
0/150
提交评论