Python表达式

  • Post author:
  • Post category:python




表达式

  • 由一个或者几个数字或者变量或者运算符合成的一行代码
  • 通常返回一个结果
# 表达式
a = 1 + 2
print(a)



运算符

  • 由一个以上的值经过一系列的运算得到新值的过程叫做运算
  • 用来操作运算的符号叫运算符



运算符分类



算术运算符

用来进行算术运算的运算符

  • 符号

    • 加号:+
    • 减号:-
    • 乘号:*
    • 次方:**
    • 除号:/
    • 地板除://
    • 取余:%
  • Python没有自增和自减运算符
  • 执行顺序:从左右到
# 算术运算符
a = 9 - 2
print(a)

b = 9 + 2
print(b)

c = 8 * 2
print(c)

# 两个乘号是指数
d = 7 ** 2
print(d)

# Python除法分为普通出发,地板除和取余
# 正常除法
x = 9 / 2
print(x)

# 地板除,向下取整
y = 9 // 2
print(y)

# 取余
z1 = 9 % 2
print(z1)

# 除以负数的结果
# 取余的概念:被取余的数减去一个数字,能够正好被取余的数整除
z2 = 9 % -4
print(z2)

"""
运行结果:
7
11
16
49
4.5
4
1
-3
"""



比较运算符

对两个内容进行比较的运算符

  • 符号

    • 等于号:==
    • 不等于号:!=
    • 大于号:>
    • 小于号:<
    • 大于等于号:>=
    • 小于等于号:<=
  • 返回值是布尔值,True或False
  • 执行顺序:从左到右
# 等于:==
a = 3 == 4
print(a)

# 不等于:!=
b = 3 != 4
print(b)

# 大于:>,大于等于:>=,小于:<,小于等于:<=
print(3 >= 8)
print('Madman' > 'Badman')

"""
运行结果:
False
True
False
True
"""



赋值运算符

把一个值放到变量里面去

  • 符号

    • 赋值:=
  • 所有的数学运算符都可以和赋值运算符搭配缩写,但是不建议用
  • 执行顺序:从右到左
# 赋值符号:=
a = 9
print(a)

# 复杂赋值
b = c = 9
d,e = 1,2
print(b, c)
print(d, e)



逻辑运算符

对布尔类型变量或者值进行运算的符号

  • 逻辑运算符

    • 逻辑与:and
    • 逻辑或:or
    • 逻辑非:not
  • Pyhon没有异或逻辑运算符
  • 逻辑运算符存在短路问题

    • 按照运算顺序计算,一旦能够确定整个式子未来的值,则不再进行计算,直接返回结果
# 逻辑表达式
a = True
b = True
c = False

d = a and b
print(d)

e = a and c
print(e)

f = 100 and c
print(e)

"""
运行结果:
True
False
False
"""
# 逻辑运算符的短路问题1
a = True
b = True
c = False

# "a or"后面的代码不会执行
c = a or b and (a and b)
print(c)

"""
运行结果:
True
"""
# 逻辑运算符的短路问题2
def a():
    print('a')
    return True

def b():
    print('b')
    return True

c = a() and b()
print(c)
    
d = a() or b()
print(d)

"""
运行结果:
a
b
True
a
True
"""



成员运算符

用来检测一个值或者变量是否在某个集合里面

  • in:在里面
  • not in:不在里面
# in/not in
l = [1, 2, 3, 4, 5]
a = 6
b = a in l
print(b)

c = a not in l
print(c)



身份运算符

用来确定两个变量是否是同一个变量

  • is:是
  • is not:不是
# is/not is
a = 1
b = 2

c = a is b
print(c)

d = a is not b
print(d)

"""
运行结果:
False
True
"""
# 关于Python底层的原理
# 如果是较大的数,结果会出现False
x = 1110001110
y = 1110001110
z = x is y
print(z)

# 如果是较小的数,结果会出现True
a = 3
b = 3
c = a is b
print(c)

"""
运行结果:
True
True
"""

# 为什么较大数用is运算符时会显示False:原因是因为标准的Python是C编写的。在两个数用is运算符时,实际上比较的是两个变量所在的地址
# 为什么较小数用is运算符时会显示True:原因时因为Python觉得较小的数(-5到256之间)经常用到,所以会在内存中先定义好较小数的地址,当我们要用到的时候,直接将地址指向小数字所在的地址,而不是重新开辟一段空间



运算符的优先级问题

  • 小括号具有最高的优先级
  • 在用运算符的时候,为了避免歧义,多使用括号来规定运算顺序



版权声明:本文为Madman_Lyy原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。