Python-运算符

1.运算符

1.1运算符的概念

运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+”。

1.2运算符的分类

.算术运算符
.赋值运算符
.比较运算符(关系运算符)
.逻辑运算符
.条件运算符(三元运算符)

2.算术运算符

.加法运算符 表现形式 + 如:3+5
.减法运算符 表现形式 - 如:8-7
.乘法运算符 表现形式 * 如:7*8
.除法运算符 表现形式 / 如:12/3
.// 整除:只会保留计算后的整数位,总会返回一个整型
例: 12//5=2
.% 取模:求两个数相除的余数 如:10%3=1
.** 幂运算:求一个值的几次幂(或者是开平方)
例: 3 ** 4=81 25 ** 0.5=5(开平方)

3. 赋值运算符

在这里插入图片描述
在这里插入图片描述

4. 比较运算符

在这里插入图片描述
在这里插入图片描述
练习:
‘ax’<‘xa’ 为True还是False?
如果出现多个字符那么我们比较的方式是按序比较,其实比较是字符的ASCII码值。ord(‘a’)=97 ord(‘X’)=88 ,先比较字符a和字符X的ASCII码值,97>88,所以返回值为False。
== 和 is 的区别:
初学 Python,大家可能对 is 比较陌生,很多人会误将它和 == 的功能混为一谈,但其实 is 与 == 有本质上的区别,完全不是一码事儿。
== 用来比较两个变量的值是否相等,而 is 则用来比对两个变量引用的是否是同一个对象。
那么,如何判断两个变量是否属于一个对象呢?Python 提供了一个全局的 id() 函数,它可以用来判断变量所引用的对象的内存地址(相当于对象在计算机内存中存储位置的门牌号),如果两个对象所在的内存地址相同(相当于它们住在同一个房间内,计算机同一块内存在任一时刻只能存放一个对象),则说明这两个对象其实是同一个对象。

5. 逻辑运算符

在这里插入图片描述

5.1not 逻辑非

not可以对符号右侧的值进行非运算
对于布尔值,非运算会对其进行取反操作,True变False,False变True
对于非布尔值,非运算会先将其转换为布尔值,然后再取反。
  字符串:有内容为True,空字符串为False.
  数字:0 为 False ,其它 为 True .

5.2and 逻辑与

and可以对符号两侧的值进行与运算
只有在符号两侧的值都为True时,才会返回True,只要有一个False就返回False
与运算是找False的
Python中的与运算是短路的与,如果第一个值为False,则不再看第二个值。
总结:
1.符号两侧的值为 True 和 False(boolean布尔值) 结果只有 True 和 False;当两侧都为 True 时, 结果才为 True 。其它结果为 False 。
2.符号两侧的值为 数字 结果为 右侧值 或 0;当两侧值全非0时,结果取符号右侧值; 当两侧至少有一个值为0时, 结果 为 0 。
3. 符号两侧的值为 字符串, 结果为 右侧值 或 (输出)空行
当两侧值为非空字符串时, 结果取符号右侧值; 当两侧至少有一个值为空字符串时,结果 为(输出)空行。

5.3or 逻辑或

or 可以对符号两侧的值进行或运算
或运算两个值中只要有一个True,就会返回True
或运算是找True的
Python中的或运算是短路的或,如果第一个值为True,则不再看第二个值
总结:
1.符号两侧的值为 True 和 False(boolean布尔值) 结果只有 True 和 False;当两侧值都为False , 结果才为 False 。
2.符号两侧的值为 数字 结果为 数字 或 0;当两侧非0, 结果取左侧值;当其中一值为 0 ,另一值为 非0, 结果取非0值;当两侧为0, 结果为 0 。
3.符号两侧的值为 字符串, 结果为 字符串 或 (输出)空行;
当两侧非空, 结果取左侧值;
当其中一值为 空 ,另一值为 非空, 结果取非空值;
当两侧为空, 结果为 输出空行 。

4.符号两侧的值为数字与boolean ,结果为 数字,Boolean值。 非0 , 0 , True,False;当两侧非0或非False, 结果取左侧值;当两侧一值非0或非False,另一值为0或False, 结果取非0或True;当两侧为 0,False, 结果为 右侧值。

6.条件运算符(三元运算符)

语法: 语句1 if 条件表达式 else 语句2
执行流程:
   条件运算符在执行时,会先对条件表达式进行求值判断
   如果判断结果为True,则执行语句1,并返回执行结果
   如果判断结果为False,则执行语句2,并返回执行结果
   在这里插入图片描述

练习:
如果a = 60,b = 80,c = 90,找出三者中的最大值?
方法一:
x=max(a,max(b,c))
输出结果:x=90
方法二:
print(‘a,b,c三者中最大值为max=’,(a if a>b else b) if (a if a>b else b)>c else c)
输出结果:a,b,c三者中最大值为max= 90
方法三:
a if(a>(b if b>c else c)) else (b if b>c else c)
输出结果:90

7. 运算符的优先级

所谓优先级,就是当多个运算符同时出现在一个表达式中时,先执行哪个运算符。在这里插入图片描述
虽然 Python 运算符存在优先级的关系,但不推荐过度依赖运算符的优先级,这会导致程序的可读性降低。
注意:
1.不要把一个表达式写得过于复杂,如果一个表达式过于复杂,可以尝试把它拆分来书写。
2.不要过多地依赖运算符的优先级来控制表达式的执行顺序,这样可读性太差,应尽量使用( )来控制表达式的执行顺序。

8. 运算符结合性

所谓结合性,就是当一个表达式中出现多个优先级相同的运算符时,先执行哪个运算符:先执行左边的叫左结合性,先执行右边的叫右结合性。
例如对于表达式对于100 / 25 * 16,/和的优先级相同,应该先执行哪一个呢?这个时候就不能只依赖运算符优先级决定了,还要参考运算符的结合性。/和都具有左结合性,因此先执行左边的除法,再执行右边的乘法,最终结果是 64。
Python 中大部分运算符都具有左结合性,也就是从左到右执行;只有单目运算符(例如 not 逻辑非运算符)、赋值运算符和三目运算符例外,它们具有右结合性,也就是从右向左执行。

总结:
当一个表达式中出现多个运算符时,Python 会先比较各个运算符的优先级,按照优先级从高到低的顺序依次执行;当遇到优先级相同的运算符时,再根据结合性决定先执行哪个运算符:如果是左结合性就先执行左边的运算符,如果是右结合性就先执行右边的运算符。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值