Python基础(1)——数字、赋值、逻辑、比较、关系、位等运算操作(and和&的区别)

目录

  1. 数字运算:+、-、*、/、//(整除)、%(取余)、**(幂次方)
  2. 赋值运算:+=、-=、*=、/=、**=、//=、%=
  3. 逻辑运算:and、or、not
  4. 比较运算:==、!=、>、<、>=、<=
  5. 关系运算:in/not in、is/is not
  6. 位运算:& 、| 、  ^ (异或) 、 ~ (取反) 、  >> (右移) 、 <<(左移)
  7. and和&的区别

1、数字运算

+、-、*、/、//(整除)、%(取余)、**(幂次方)

>>> 1 + 2   # 加
3
>>> 5 - 2   # 减
3
>>> 2 * 3   # 乘
6
>>> 6 / 3   # 除
2.0
>>> 5 // 2  # 整除(商往小的取)
2
>>> -9 // 2 # 整除(商往小的取)
-5
>>> 5 % 2   # 取余
1
>>> 2 ** 3  # 幂次方
8

2、赋值运算

+=、-=、*=、/=、**=、//=、%=

>>> a=10
>>> b=15
>>> a += 2    # a=a+2,即a=10+2=12
>>> print(a)
12
>>> b -= 1    # b=b-1,即b=15-1=14
>>> print(b)
14
>>> b //= 2   # b=b//2,即b=14//2=7 
>>> print(b)
7
>>> a **= 2   # a=a**2,即a=12**2=144
>>> print(a)
144
>>> a *= 2    # a=a*2,即a=144*2=288
>>> print(a)
288
>>> b /= 2    # b=b/2,即b=7/2=3.5
>>> print(b)
3.5
>>> b %= 2    # b=b%/2,即b=3.5%2=1.5
>>> print(b)
1.5

3、逻辑运算 — 结果为布尔值(0为False,非0为True)

  • and:先判断第一个数是否为0,若为0,则结果为0;否则看第二个数,不管第二个数是多少,输出结果都是第二个数
  • or:先判断第一个数是否为0,不为0,则输出第一个数;若为0,则看第二个数,不管第二个数是多少,输出结果都是第二个数
  •  not:非0的数,结果为False;not 0,结果为True
#and运算是与运算,只有所有都为True,and运算结果才是True
>>> 1 and 2  
2
>>> 0 and 2
0
>>> 5 > 3 and 3 > 1 
True

#or运算是或运算,只要其中有一个为True,or运算结果就是True
>>> 1 or 2
1
>>> 0 or 3
3
>>> 5>3 or 1>3
True

#not运算是非运算,它是一个单目运算符,把True变成False,False变成True
>>> not 2
False
>>> not 0
True
>>> not 1>2
True

4、比较运算

==、!=、>、<、>=、<=

>>> 1 == 1
True
>>> 1 != 2
True
>>> 1 > 2
False
>>> 2 < 3
True
>>> 2 >= 1
True
>>> 3 <= 3
True

5、关系运算

  • in、not in:判断的是 在与不在,返回的是布尔值
  • is、is not:判断的是 是否全等,不仅值相等,内存地址也要相等
>>> 1 in (1,2,4)
True
>>> 2 not in (1,3,4)
True
>>> a=1
>>> b=1
>>> a is b
True
>>> c=[1,2]
>>> d=[1,2]
>>> c is d     #'is'比较的是所有属性,包括地址,值等
False
>>> c==d       #'=='比较的是值
True

由此也可证明数字类型是不变量,列表类型是变量

6、位运算

  • &:二进制按位与
  • | :二进制按位或
  • ^ : 二进制按位异或
  • ~  :  取反,数值前面添个负号,在减1(先逐位取反,之后除去符号位,在逐位取反,末位加1)
  • >> : 右移 n 位,值缩小为原来的 1/2^n 倍
  • << :左移 m 位,值增大为原来的 2^m 倍
>>> a=24     # 0001 1000
>>> b=10     # 0000 1010
>>> a & b    # 0000 1000 = 8
8
>>> a | b    # 0001 1010 = 26
26
>>> a ^ b    # 0001 0010  相同为0,不同为1
18
>>> ~ a      # 前面先加 '-',再减 1(-24-1=-25)
-25
>>> a >> 2   # 右移两位,缩小4倍
6
>>> a << 3   # 左移三位,扩大为原来的2的3次方倍(8)
192

7、and和&的区别

首先 & 是位运算符,and 是逻辑运算符(结果为布尔值,0为 True,非0为 False),所以在选择结构中常用 'and'。

举例1: 设a和b是两个整数,a=1,b=2

a&b     分析:a以二进制表示就是01,b以二进制表示就是10,故&的运算结果就是00,即十进制的0

a and b    分析:1是真,2也是真,故a and b是True(非0)

>>> a=1
>>> b=2
>>> a & b
0
>>> a and b
2

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值