表达式、运算符

表达式

  • 有一个或者几个数字或者变量或者运算符合成的一行代码
  • 通常返回一个结果

运算符

  • 有一个以上的值经过一系列的运算得到新值的过程叫运算
  • 用来操作运算的符号叫运算符
  • 运算符分类
    • 算术运算符
    • 比较或者关系运算符
    • 赋值运算符
    • 逻辑运算符
    • 位运算
    • 成员运算符
    • 身份运算符
# 表达式案例
a = 1 + 2

算术运算符

  • 用来进行算术运算的符号
  • 通常用来表示加减乘除
  • python没有自增自减运算符
# 算术运算案例
# 加减成跟数学意义基本一致

a = 9 - 2
print(a)

b = 9 + 2
print(b)

c = 8 * 2
print(c)

# python除法分为普通除法,地板除,取余

# 正常除法
# 此操作符在python2.x和3.x中有些不同
a = 9 / 2
print(a)

# 地板除
a = 9 // 2
print(a)

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

# 除以负数的结果
# 理解这个结果参考取余定义
a = 9 % -4
print(a)

#  两个乘号就是指数
a  = 7 ** 2
print(a)
7
11
16
4.5
4
1
-3
49

比较运算符

  • 对两个内容进行的运算符
  • 结果一定是布尔值,即True/False
# 等于 ==
a = 3 == 4
print(a)

# 不等于 !=
a = 3 != 4
print(a)

# 其他的符号是
# >,>=,<=

print(3 >= 8 )

print("wxj" > "xdn")
False
True
False
False

赋值运算符

  • 把一个值放到变量里边去
# 赋值符号 =
a = 9

# 复杂赋值
a = b = 9
a,b = 1,2

# 赋值的缩写
cc = 100
cc = cc + 3
print(cc)

# 注意下面符号仅仅是一个缩写
cc += 3 #cc = cc + 3
print(cc)

## 所以数学运算符都可以缩写
# -=,*=,/=,//=,%=,**=,都是缩写形式
# python里面没有 ++, --
103
106

逻辑运算符

  • 对布尔类型变量或者值进行运算的符号
  • and:逻辑与
  • or: 逻辑或
  • not:逻辑非
  • python里面的逻辑运算没有异或
  • 运算规则:
    • and看做乘法,or看做加法,
    • True看做1,False看做0
    • 则逻辑运算就能转换成整数数学运算
    • 最后结果如果是0则为False,否则为True
  • 逻辑运算的短路问题
    • 逻辑运算式,按照运算顺序计算,一旦能够确定整个式子未来的值,则不再进行计算,直接返回
# 逻辑表达举例
a = True
b = True
c = False

aa = a and b # 左边表达式可以转换成1*1
print(aa)

bb = a and c
print(bb)

cc = 100 and c
print(cc)

# 布尔值跟数字的转换
# 数字转换成不二值的时候,0 = false, 其余是true
# 布尔值转换成数字的时候: True=1
True
False
False
# 短路问题案例
a = True
b = True
c = False

aa = a or b and (a and b) # 转换成算数1+.....
print(aa)
True
# 短路问题案例2
def a():
    print('a')
    return True

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

aaa = a() and b()
print(aaa)
    
# 字符串乘以数字,表示这个字符串重复多少遍
print("*" * 20)

bbb = a() or b() # 短路发生
print(bbb)

a
b
True
********************
a
True

成员运算符

  • 用来检测一个值或者变量是否在某个集合里面
  • in:成员运算符
  • not in:不在里面的意思
# in 案例
L = [1,2,3,4,5]
a = 6
aa = a in L
print(aa)

# a没有在L里面
aa = a not in L
print(aa)
False
True

身份运算符

  • 用来确定两个变量是否是同一个变量
  • is:变量运算符
  • is not:不是
  • 学python的想必都知道,对整数N \in [-5,256],解释器对他们做了单独的处理,放进了固定的内存中,不因你每次运行而变化

这里在记录一些相关的。

不仅对小整数有这样的处理,内建的类(int,staticcmamethod,object,TypeError,)也都是这样处理的。
看一个变量的内存是不是这样处理的,无需运行两次,只要看id()编号的长度就行,他们都是10位的,普通变量都是13位的。
其实并不是每次运行结果都一样,比如重启电脑再试试。
不同的软件打开pycharm、cmd、jupyter得到的是不同的结果。
只要把解释器全部关闭再打开某一个,其余的都会是这个软件的值。
电脑不关机的话,软件重复关闭打开id值是一样的。
(当然同一台电脑上的不同python解释器结果肯定也不相同,不同电脑那就更不用说了,不严谨。)

# 身份运算符定义
a = 1
b = 10000000000

aa = a is b
print(aa)

#a,b仅仅是值一样,并不代表a,b是一个变量
a = 1000000
b = 1000000

aa = a is b
print(aa)

#正确理解下面案例跟上面案例不一样
#a,b仅仅是值一样,并不代表a,b是一个变量
a = 5
b = 5

aa = a is b
print(aa)

print(id(a))
print(id(b))
False
False
True
140731012060096
140731012060096

运算符优先级问题

  • 小括号具有做高优先级

    **  指数(最高优先级)
    ~+ -       按位翻转,一元加号和减号(最后两个的方法名为 +@ 和 -@)
    * / % //    乘,除,取模和取整除
    + -       加法减法
    >> <<      右移,左移运算符
    &         位‘AND’
    ^  |       位运算符
    <= < > >=    比较运算符
    <> == !=    等于运算符
    = %= /= //= -= += *= **=  赋值运算符
    is   is not  身份运算符
    in   not in  成员运算符
    not  or  and  逻辑运算符
    
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值