运算符

Python 学习笔记

一、算术运算符


什么是运算符?

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


算术运算符表现形式:+ - * /

# 算术运算符 表现形式 + - * /

# 如果是两个字符串相加,则会进行拼串操作
x = 1 + 2
x = 'Logic'+ ' '+'Python'
x = 5 - 2

# 如果是两个字符串相减,则会报错
x = 'h' - 'y'

# 如果将字符串和数字相乘,则会对字符串进行复制操作,将字符串重置制定次数
x = '-' * 20
x = 2 * 2

# 除法运算符总会返回一个浮点类型的值 
x = 6 / 2
x = 3 / 2
x = 7 / 3

# '//' 整除: 只会保留计算后的整数位,总会返回一个整型
x = 7 // 3

# '%'  取模: 求两个数相除的余数
x = 6 % 4
x = 6 % 3

# '**' 幂运算: 求一个值的几次幂
x = 2 ** 4

# 开平方: 也会返回一个浮点型
x = 25 ** 0.5 



二、赋值运算符

 x = 2
 x += 3   						 						  # 5 	 		相当于 x = x + 3 
 x -= 3   						 						  # 2	 		相当于 x = x - 3 
 x *= 3   						 						  # 6	 		相当于 x = x * 3 
 x /= 3   												  # 2.0 		 	相当于 x = x / 3 
 x //= 3  						 						  # 0.0 			相当于 x = x // 3 
 x = 5	
 x %= 3   						 						  # 1      		相当于 x = x % 3



三、比较运算符


3.1、比较运算符就是用来比较两个值之间的关系,总会返回一个布尔。

>: 比较左侧值是否大于右侧值
<: 比较左侧值是否小于右侧值
>=: 比较左侧值是否大于或者等于右侧值
<=: 比较左侧值是否小于或者等于右侧值


3.2、比较的是对象的 “值”

# 整数 与 整数 比较
  r = 10 > 20			 	 	 						  # False
  r = 30 > 20					 						  # True
  r = 30 < 20 	 				 						  # False
  r = 20 >= 20 					 						  # True

# 整数 与 布尔值 比较
  r = 3 > True 					 						  # 3 > 1

# 整数 与 字符串 比较
  r = 2 > '1' 							    			  # 报错 

# 字符串 与 字符串 比较
  r = '2' > '1' 			  		 					  # True
  r = '2'>'11'  				 						  # True

  r = 'a' > 'b' 		 		 						  # False
  r = 'c' < 'd' 		     	 						  # True

  r = 'ab' > 'b'				 						  # False 
  # 原因是什么? 如果出现多个字符那么我们比较的方式是对位比较
  # 即,从第一位开始比,若出现结果,则结束比较。如下:

  r = 3 == 3 					 						  # True
  r = 'Python' == 'Python'   	 						  # True
  r = 'bcd' == 'abc' 			 						  # False
  r = 1 == True 				 						  # True False 可以看做是整数 0 == =

3.3、比较对象的 “id”,用 is 和 is not

  • is: 比较两个对象是否是一个对象
  • is not: 比较两个对象是否不是同一个对
  r = 0 == False				 						  # True  , 值相等
  r = 0 is False				 						  # False , id不相等
  
  r = 1 == True					 					 	  # True  , 值相等
  r = 1 is not True				 						  # True  , id不相等



四、逻辑运算符


4.1、not 逻辑 “非”

可以对符号右侧的值进行非运算
对于布尔值,非运算会对其进行取反操作。not True -> Fasle , not False -> True
对于非布尔值,会先将其转换为布尔值,然后在取反。 例如: 0、空、None 还有一些其他是空性的值会转换成 False, 剩下的都是 True

a = True
a = not a
a = None 												  # 对于非布尔值,会先将其转换为布尔值,然后在取反
a = not a

4.2、and 逻辑 “与”

and 逻辑与 可以对符号两侧的值进行与运算
只有在符号两侧都是 True 的情况下才会返回 True,只要有一个 Fasle 就会返 回 False。( 说白了与运算就是找 Fasle )

r = True and True 										  # True
r = True and False 										  # False
r = False and True 										  # False
r = False and False 									  # False

r = False and print('Hello') 							  # False , 因为只要有一个 Fasle 就会返 回 False .

4.3、or 逻辑 “或”

or 可以对符号两侧的值进行或运算
或运算两个值只要有一个 True , 就会返回 True, 或运算就是找 True

r = True or True 										  # True
r = True or False 										  # True
r = False or True 										  # True
r = False or False 										  # False

r = True or print('Hello')	 							  # True , 因为只要有一个 True 就会返 回 True .

4.4、非布尔值的 “与、或” 运算

当我们对非布尔值进行与或运算的时候,Python会将其当做布尔值进行运 算最终会返回原值

非布尔值的 “与” 运算的规则:
与运算找 Fasle,如果第一个值是 Fasle,则直接返回第一个值,就不看第二个值;
如果第一个值是 True,则直接返回第二个值。

# True   False
r = 1 and 0 											  # 0

r = 0 and None 											  # 0
r = 1 < 2 < 3 											  # True , 相当于 1 < 2 and 2 < 3
r = 1 < 2 > 3 											  # False , 相当于 1 < 2 and 2 > 3

非布尔值的 “或” 运算的规则:
或运算就是找 True,如果第一个值是True,则直接返回第一个值,则不看第二个值;
如果第一个值是 False,则返回第二个值。

# True  True
r = 1 or 2 												  # 1

r = 1 or 0 											 	  # 1
r = 0 or 1												  # 1
r = None or 0											  # 0



五、条件运算符(三元运算符)


语法:语句 1 if 条件表达式 else 语句 2

  • 若表达式为 True,则返回 " 语句1 "
  • 若表达式为 False,则返回 " 语句2 "
  a = 60
  b = 80
  print('a的值大')  if  (a > b)  else  print('b的值大')

  max = ( a  if  (a > b)  else  b )
  print(max)


# 现在有 a b c三个变量 请通过条件运算符获取三个值当中的最大值
  a = 80
  b = 50
  c = 90
# 条件运算符
## (方法 1)
  max = a  if  (a > b)  else  b
  max = max  if  (max > c)  else  c
  print(max)
## (方法 2, 一般不这么写)
  max = a  if  (a > b and a > c)  else  (b if (b > c) else c)
  print(max)



六、运算符的优先级

官网有表格,越往下优先级越高。
https://docs.python.org/3/reference/expressions.html#operator-precedence

a = 2 or 3 and 4

# 若:or 和 and 优先级一样, 从左往右运算. 则 => (2 and 4) => 结果 4
# 若:or 优先级高. 则 => (2 and 4) => 结果 4
# 若:and 优先级高. 则 => (2 or 4) => 结果 2

运行得出, 结果是 2. 所有 and 的优先级高

# 运算符的优先级可以根据表格来查询, 越往下优先级越高 .
# 规则:优先级越高越优先计算, 如果优先级一样就是从左往右计算 .

练习:
a = not (4 > 2) and (5 > 6) or (3 < 4) 					  # True
a = not (4 > 2 and 5 > 6 or 3 < 4) 						  # False
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值