# 3 位运算&三目运算&if判断
1 位运算
Python 支持的位运算符有如下 6 个:
- &:按位 与,相当于 and
- |:按位 或,相当于 or。
- ^:按位 异 或。
- ~:按位 取反。
- <<:左位移运算符。
- >>:右位移运算符。
&:按位 与,类似and
print(3 & 2)
1 表示 True :0 表示 False
0000 0011
& 0000 0010
--------------
结果 0000 0010
|:按位 或,类似or
1 True 0 False
print(5 | 3)
0000 0101
| 0000 0011
--------------
结果 0000 0111
~:按位 取反。
print(~5) # 取反 将十进制的数字对应的二进制进行取反操作。
0000 0101
取反:
1111 1010
1111 1010 减1
1111 1001 取反
0000 0110 6
结果 -6 看第一位(第一位是符号位,只要第一位是1的就是负数,第一位是0的就是正数)
^:异或
相同的是0 不同的是1
print(3^5)
# 步骤:
1. 左边的数字转成二进制
2. 右侧的数字转成二进制
3. 对齐,上下进行比较(相同的是0 不同的是1)
4. 将计算的结果转成十进制
0000 0011
0000 0101
----------------
0000 0110 -----> 6
<<:左位移运算符。
>>:右位移运算符
0000 0010
左移: m<<n m*2的n次方
右移: m>>n m//2的n次方
2 三目运算
python的格式: 结果 if 表达式 else 结果
a=6
b=5
result = (a+b) if a<b else (b-a)
判断表达式是True还是False
如果是True则 将if前面的内容进行运算,并将结果赋值成result
如果是False则将else后面的内容运算结果,并将结果赋值成result
运算符的优先级:
排序:
**
~
+ - (符号运算符)
* / // %
+ - 加减
<< >>
&
^
|
== != > >= < <=
is is not
not
and
or
3 if 语句
猜大小游戏
import random
ran = random.randint(1, 100)
user_input = int(input("请用户输入数字:"))
if user_input > ran:
print("用户赢了")
elif user_input < ran:
print("用户输了")
else:
print("平局")