python运算符

本文详细介绍了Python中的各种运算符,包括算术运算符如加减乘除取整取余,比较运算符如大于、小于、等于,赋值运算符的普通赋值、增量赋值、链式赋值、交叉赋值,逻辑运算符的非、与、或及其短路特性,身份运算符is以及成员运算符in和notin。此外,还讨论了布尔运算符和隐性布尔转换在条件判断中的应用。
摘要由CSDN通过智能技术生成

运算符种类

  1. 算术运算符
  2. 比较运算符
  3. 赋值运算符(有惊喜)
  4. 逻辑运算符
  5. 身份运算符
  6. 成员运算符
  7. 布尔运算符(拓展讲解,要了解假条件)

一、算术运算符

print(10 + 1)
print(10 - 1)
print(10 * 1)
print(10 / 3) #3.3333333333333335
print(10 //3) # 取整  3
print(10 % 3) # 取余  1   10 /3 = 3 余1 
print(10 **3) # 幂  1000  10的三次方

二、比较运算符

print( 1 > 2)  #False
print( 1 >= 2) #False
print( 1 < 2)  #True
print( 1 <= 2) #True
print( 1 == 2) # False
print( 1 != 2) #True

三、赋值运算符

3.1 普通赋值

a = 10    #单赋值
a,b = 1,'a' # 多赋值(按顺序对应)

3.2 增量赋值

# 先解释下:以 a += 1 举例  a = a +1   a = 10 + 1 = 11
# 那么问题来了,a += 2*3 等于多少呢?
# 实际上,可以把  += 是最后算的 
# 所以: a = a + (2*3)  ---> a = 10 + (2*3) = 16 而不是  a = (a + 2) *3 = (10+2) *3 =36 

a += 1
a -= 1
a *= 3
a /= 3
a %= 3
a //= 3
a **= 3

3.3 链式赋值

介绍:有时候我们向将 多个变量名 赋值 同一个变量值,但是 a = 10 b=10 会显得麻烦,也比较浪费内存空间。

那么有什么办法可以更简单实现呢?

# 通过把一个变量值 赋值 给个变量名
# 多个变量赋值为 0 更为常见
a = b = c = 0  
e = f = g = '你好'

3.4 交叉赋值(交换赋值变得方便)

3.4.1 交换赋值实现:
# 交叉赋值实现   a   -    b
#				|     |
#                  t
a = 10
b = 11
# 找个临时变量
temp = a  # 这时候 temp,a 都指向 10 内存地址
a = b    # 这时候  a,b 指向 11 内存地址
b = temp # 这时候  temp,b 指向 10 内存地址  

3.4.2 交叉赋值用法
a,b = 1,2
a,b = b,a 
print(a) # 2
print(b) # 1

3.5 解压赋值

# 针对列表,元组
l1 = ['aa','bb','cc','dd']

# 按顺序赋值
a,b,c,d = l1
print(a,b,c,d) # aa bb cc dd

# 按照位置获取,取首尾
a,*qita,d = ('aa','bb','cc','dd')
print(a,d)  # aa dd
print(qita)   # ['bb', 'cc']   剩余元素会按照列表的形式返回
# 解释这件事, * 是任意位置,qita 是剩余元素,这里的qita 是自己定义的

# 再来一遍
*qita1,c,*qita2 = ('aa','bb','cc','dd')  # 错误,为什么?因为你不知道qita1取了几个,也不知道qita2取了几个,所以不能判断c取得位置是哪个


# 针对字典,只能取到key
x,y,z=dic={'a':1,'b':2,'c':3}
print(x,y,z)  # ('a', 'b', 'c')

四、逻辑运算符

优先级:非(not) > 且 (and) > 或(or) 短路:多条件复合时,从头开始找到那个符合条件的地方 并返回其条件

# 用法:
# not : not 就是条件取反的意思  
print(not 1 ==2)  # true  对1==2取反,因为 1==2 为 false  取反  true

# and : 且的意思,全真才真,有假就假
print(1 > 0 and 1 < 2)   # true    1>0 true   1<2 true   -->true 
print(1 < 0 and 1 < 2)   # false   1<0 false  1<2 true   -->false

# or :或的意思,全假才假,有真就真
print(1 > 0 or 1 < 2)    # true     1>0 true   1<2 true   -->true 
print(1 < 0 or 1 < 2)    # true     1<0 false  1<2 true   -->true
print(1 < 0 or 1 > 2)    # false    1<0 false  1<2 false   -->false

短路运算:惰性原则

# 短路原则:懒惰原则
# 什么叫短路呢?多条件复合,从头到尾执行,符合条件就退出,并返回条件

# 短路用法1:and 使用 : 条件为假 就跳出
print( 1==2  and 1> 0 and 2>1 and 1)  # 执行到哪结束? 1==2 为什么?因为 1==2 条件为假
print( 1> 0 and 1 and 2>1)  # 执行到哪结束? 2>1 为什么?因为执行到最后一个条件位置,可判断条件为真

# 短路用法2:or 使用 : 条件为真 就跳出
print( 1==2  or 1> 0 or 2>1 or 1)  # 执行到哪结束? 1> 0 为什么?因为 1> 0 条件为真
print( 1< 0 or 1 or 2<1)  # 执行到哪结束? 2<1 为什么?因为执行到最后一个条件位置,可判断条件为假

优先级比较 :not > and > or

3>4 and not 4>3 or 1==3 and 'x' == 'x' or 4 >3
请用括号分清条件:
步骤1:先找出not
    (not 4 >3)
步骤2:再找出and
    (3>4) and (not 4>3)    (1==3) and ()'x' == 'x')
步骤3:最后将notand条件合并,再去找or
     (3>4) and (not 4>3) or  (1==3) and ('x' == 'x')
        
     ((3>4) and (not 4>3)  or  (1==3) and ('x' == 'x'))  or 4>3not 假           假          真            真
             假                        假                    真
                           假                                真
                                                         真

五、身份运算符 is

# 主要用来判断id 即内存地址
# 在哪使用?  str 、list、tuple、dict、set
a = 10
b =11
print(a is b ) # True 竟然是对的?因为小整数池,-1 -256 使用的内存地址都是一样的,pycharm特有。

六、成员变量 in not in

从两个关键字来说,in 是在什么里面吗? not in 不在什么里面?

所以:a in b 表示 a 是 b 的一部分?

# 主要用来判断某个元素是否在另一个大集合中存在
# 在哪使用?  str 、list、tuple、dict、set

# 以列表为例
l1 = ['1','2','3']
print('1' in l1)     # True
print('2' not in l1) # False

# 以字典为例
d1 = {'a':1,'b':2,'c':3}
print(1 in d1)   # False 为什么呀?1 不是在字典里面吗? 原因:因为字典一般用来判断key不行试试
print('a' in d1) # True
# 提醒一下:其实好多情况下,对字典进行转换操作,只是对key生效,想要直接访问value 需要用其他方法
print(1 in d1.values())  # True

七、布尔运算符

布尔类型:

​ 显性;

​ 隐性

# 布尔类型,作为条件来说,其实只有两种,True 和False
# 但是一般来说,我们并不会直接得出True 和False

# 那么隐型来了:
0 , NONE  ,(str,list,tuple,dict,set) 
# 当符合上诉条件的时候,我们可以判定这条件为假

# 使用:
if list:
   print('列表不为空')
else:
   print('列表为空')
if not str:
    print('字符串为空')
else:
    print('字符串不为空')

# 推荐一种方式:
if not len(xxx) == 0:
    print('xxx不为空')
else
	print('xxx为空')

et)

当符合上诉条件的时候,我们可以判定这条件为假

使用:

if list:
   print('列表不为空')
else:
   print('列表为空')
if not str:
    print('字符串为空')
else:
    print('字符串不为空')

推荐一种方式:

if not len(xxx) == 0:
    print('xxx不为空')
else
	print('xxx为空')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值