表达式与运算符

 ]:
 
 
# 表达式
- 由一个或几个数字或变量和运算符组成的一行代码
- 通常会反回一个结果
# 运算符
- 由一个以上的值经过变化得到新值的过程叫运算
- 用于运算的符号叫运算符
- 运算符分类
   - 算数运算符
   - 比较或者关系运算符
   - 赋值运算符
   - 位运算
   - 成员运算符
   - 身份运算符
   - 逻辑运算符
In [ ]:
 
 
## 算数运算符
- 进行数学运算的符号
- python里没有自增自减运算符
In [8]:
 
 
#:(+,- ,与正常运算符一样)
a = 9 + 3 - 2 
#:(乘号用“*”代替,除号用“/”代替)
# 在python2与python3中除号(/)结果可能不一样,以3系位准
a3 = 9 * 3
a2 = 9/31
print(a, a3, a2)
# % 取余运算
# 两个数字相除应该有商数有余数
a4 = 9 % 4
print(a4)
# //表示取商运算,也叫地板除
a5 = 9 // 2
print(a5)
# * * 表示幂运算或次方运算
a6 = 9 ** 4# (表示九的四次方)
print(a6)
10 27 0.2903225806451613
1
4
6561
In [ ]:
 
 
# 比较运算符
 - 对两个变量或着两个值进行比较的运算符
  - 比较运算符结果是个布尔值,即 True/False  
In [10]:
 
 
#(== )等于号
a = 3 ** 4
# 下面这句话的执行顺序是
# 1.计算 a == 80
# 2. 把结果放入 b 中
b = a == 80
print(b)
# (!=)不等于号
print( 9 != 8)
# ( >,< )大于号,小于号
# ( >== , <== )大于等于号,小于等于号
False
True
In [ ]:
 
 
## 赋值运算符
In [11]:
 
 
# ( = )赋值运算符
a = 0
c = a =4
# ( +=  )表示缩写
a = 0
a += 7 # a = a + 7 的缩写
print(a)
# 所有数学运算符都有缩写形式
# -= , x= , /=, %= ,**=,都是缩写形式
7
In [ ]:
 
 
# 逻辑运算符
 - 对布尔值进行运算的符号
 - and 逻辑与
 - or 逻辑或
 - not 逻辑非
 - python中逻辑运算没有异或运算
 - 运算规则
     - and 看作乘法,or 看作加法,
     - True 看作1, False 看作0
     - 最后结果是 0 则为 False,否则为 True
  - 逻辑运算的短路问题
      - 逻辑运算式,按照运算顺序计算,一旦能够确定整个式子未来的值,则不再进行计算,直接返回
In [12]:
 
 
#逻辑运算符案例
a = True
b = False
c = True
#以下的式子等价于 d = 1 * 0 + 1
d = a and b or c
print(d)
True
In [13]:
 
 
#逻辑运算短路案例
#下面的逻辑表达式,a的值一定是 True ,则运行到 or 的时候,整个表达式不再进行计算
a = True or xxxxxx
#下面表达式,如果xxx中包含赋值表达式,则结果难预测
# 代码示例(伪代码)
b = 0
a = a or (b=9) and 6
#假定上面表达式不报语法错误
#则 b 最终的值应该是 0 而不是 9 
  File "<ipython-input-13-dff75f5c479b>", line 8
    a = a or (b=9) and 6
               ^
SyntaxError: invalid syntax


In [ ]:
 
 
## 成员运算符号
 - 用来检测某一个变量是否是另一个变量的重要成员
 - in
 - not in
In [19]:
 
 
# 案例
c = [1,2,3,4,9,8]
a = 7
b = a in c
print(b)
a = 9
print(a in c)
print(a not in c)
False
True
False
In [ ]:
 
 
# 身份运算符
 - 用来检测两个变量是不是同一个变量
    - 语法表达: var1 is var2(表示这两个变量是同一个变量)
 - is not :表示这两个变量不是同一变量    
In [20]:
 
 
a = 9
b = 9
print( a is b )
a = "I LOVE ruirui"
b = "I love ruirui"
print(a is b)
True
False
 
 
##  运算符优先级问题
 - 永远记住,括号拥有最高优先级
   - 优先级的表格 
       ** 指数 (最好优先级)
       ~ + - 按位翻转,一元加句号和减号(最后两个的方法名为 +0 和 -0)
        * / % // 乘 ,除,取模和取整除
        + - 加减法
        >> << 右移,左移运算符
        & 位 "AND"

运算符优先级问题

  • 永远记住,括号拥有最高优先级
    • 优先级的表格 ** 指数 (最好优先级) ~ + - 按位翻转,一元加句号和减号(最后两个的方法名为 +0 和 -0)
      • / % // 乘 ,除,取模和取整除
        • 加减法

          << 右移,左

posted on 2018-09-25 19:23  Nicktm  阅读(418)  评论(0编辑  收藏  举报

导航