'''

表达式:由变量、常量和运算符组成的式子

阅读表达式:

功能:

值:

'''

'''

算术运算符和算术运算表达式

算术运算符

+ - * / % ** //

加 减 乘 除 取模 求幂 取整

算术运算表达式

a = 10

1+1 2*3 a/3

功能:进行相关符号的数学运算,不会改变变量的值

值:相关的数学运算结果

'''
num1 = 5
num2 = 3
print(num1 + num2)
print(num1 - num2)
print(num1 * num2)
print(num1 / num2)
print(num1 % num2)
print(num1 ** num2)#5^3 pow(5, 3)
print(num1 // num2)
'''

赋值运算符和赋值运算表达式

赋值运算符 =

赋值运算表达式

格式:变量 = 表达式

功能:计算了等号右侧“表达式”的值,并赋值给等号左侧的变量

值:赋值结束后变量的

'''
num3 = 10
num4 = num3 + 20
'''

复合运算符

+= a += b a = a + b

-= a -= b a = a - b

*= a *= b a = a * b

/= a /= b a = a / b

%= a %= b a = a % b

**= a **= b a = a ** b

//= a //= b a = a // b

'''

'''if语句

格式:

if 表达式:

语句

逻辑:当程序执行到if语句时,首先计算“表达式”的值,如果“表达式”的值位真,那么久执行if下的“语句”。如果“表达式”的值为假,则跳过整个if语句继续向下执行。

何为真假?

假:0 0.0 '' None False

真:除了假就是真

'''
num5 = 20
num6 = 20
if num5 == num6:
num5 = 100
if 1:
print("*******")
print("num5 =", num5)
'''

if-else语句

格式:

if 表达式:

语句1

else:

语句2

逻辑:当程序执行到if-else语句时,首先计算“表达式”的值,如果“表达式”的值为真,则执行“语句1”。执行完“语句1”跳出整个if-else语句。如果”“表达式”的值为假,则执行“语句2”。执行完“语句2”跳出整个if-else语句。

'''

'''

位运算符:按位运算符是把数字看做二进制数来进行计算

'''
# & 按位与运算符
#相应的位数都为1,则该位的结果是1,否则为0
print(5 & 7)
'''
101
111
---
101
'''
# \ 按位或运算符
# 两个二进制位有一个位1时,结果为1
print(5 | 7)
'''
101
111
---
111
'''
# ^ 按位异或运算符
#二进制的两位相异时,结果为1
print(5 ^ 7)
'''
101
111
---
010
'''
# ~ 按位取反运算符
# 每个二级制数据位取反,1变0,0变1
print(~5)
'''
11111111111111111111111111111111
10000000000000000000000000000001
'''
# << 左移动运算符
#各二进制位全部左移动若干位,由<
print(2 << 2)
#000000010
# >> 右移动运算符
#各二进制位全部右移动若干位,由>>右侧的数字决定
print(-13 >> 2)
#00000001101
#00000000011
'''

关系运算符和关系运算表达式

== != > < >= <=

关系运算表达式:

1 + 2 > 3 + 4

格式: 表达式1 关系运算符 表达式2

功能:计算“表达式1”和“表达式2”的值

值:如果关系成立,整个关系运算表达式的值为真,否则为假

'''

'''

逻辑运算符

'''

'''

逻辑与 and

逻辑与运算表达式:表达式1 and 表达式2

值:

如果表达式1的值为真,表达式2的值为真,整体逻辑与运算表达式的值为真

如果表达式1的值为真,表达式2的值为假,整体逻辑与运算表达式的值为假

如果表达式1的值为假,表达式2的值为真,整体逻辑与运算表达式的值为假

如果表达式1的值为假,表达式2的值为假,整体逻辑与运算表达式的值为假

【有一个为假就为假】

'''
num1 = 10
num2 = 20
# num1 = num1 +1
if num1 and num2:
print("**************")
print(num1, num2)
#短路原则
# 表达式1 and 表达式2 and 表达式3 and …… and 表达式n
'''

逻辑或 or

逻辑或运算表达式: 表达式1 or 表达式2

值:

表达式1的值为真,表达式2的值为真,逻辑或运算表达式为真

表达式1的值为真,表达式2的值为假,逻辑或运算表达式为真

表达式1的值为假,表达式2的值为真,逻辑或运算表达式为真

表达式1的值为假,表达式2的值为假,逻辑或运算表达式为假

【有一个为真就为真】

'''
num3 = 0
num4 = 1
if num3 or num4:
print("&&&&&&&&&&&&&&&")
# 表达式1 or 表达式2 or 表达式3 or …… or 表达式n
'''

逻辑非: not

逻辑非运算表达式: not 表达式

值:

如果表达式的值为真,整体逻辑非运算表达式的值为假

如果表达式的值为假,整体逻辑非运算表达式的值为真

【颠倒黑白】

'''
if not 0:
print("^^^^^^^^^^^^^^^^")
'''

成员运算符:

in:如果在指定的序列中找到值返回True,否则返回False

not in:如果在指定的序列中没有找到值返回True,否则返回False

'''

'''

身份运算符

is:判断两个标识符是不是引用同一个对象

is not:判断两个标识符是不是引用不同的对象

'''

'''

运算符优先级

**

~ + - 正负号(一元加减)

* / % //

+ -

>> <<

&

^ |

<= < > >=

== !=

= %= += -= //=

is is not

in not in

not or and

'''