python 运算符与表达式

运算符

image.png

1.算术运算符 ( + - * / % // / )

python2 vs python3

1.python2中有整型和长整型 ,python3中只有整型

2.python2中没有f标志位格式化

–》 3.python2中整数相除属于地板除,要想 真除 得变成 浮点数 ,python3中除属于真除

// => 取整除:a/b得到的结果进行取整

% => 模 - -》取余数:a/b得到余数

# 算术运算符 (+、-、*、/、//、 %)
a = 10
b = 20
print("a+b=", a+b)
print("a-b=", a-b)
print("a*b=", a*b)
print("a/b=", a/b)
# // => 取整除:a/b得到的结果进行取整
print("a//b=", a//b)
# %  => 模 - 取余数:a/b得到余数
print("a%b=", a%b)
a+b= 30
a-b= -10
a*b= 200
a/b= 0.5
a//b= 0
a%b= 10

2.赋值运算符

image.png

# 赋值运算符
a = 1
a += 1   # a=a+1
print("a += 1", a)
a -= 1   # a=a-1
print("a -= 1", a)
# print("a -= 1", a+=1)==>错误的
# 参数中不能有赋值运算的
a += 1 2
a -= 1 1

3.比较运算符

image.png

# 比较运算符   =>  结果: bool值
a = 100
b = 200
print("a>b:", a>b)
print("a<b:", a<b)
a>b: False
a<b: True

4.逻辑运算符 (and or not)

逻辑运算符 => 取结果: bool

=> 实际返回:根据运算顺序返回表达式的结果

短路运算

对于包含了 and or not的表达式, 从左往右计算,但是会有短路运算规则

若 or左侧表达式为True,则短路后面所有的表达式(不管是and还是or)

若and左侧表达式为False,则短路后面

4.1 and

a and b: 如果a的bool为True,且b的bool为True => True

运算顺序
  1. 计算a表达式的结果,如果a表达式结果bool为False直接返回a表达式的结果

  2. 计算a表达式的结果,如果a表达式结果bool为True计算表达式b的结果并返回b表达式的结果

    a and b and c and d

    从左往右计算,计算表达式的布尔值为True继续向后计算,

    表达式的布尔值为False直接返回表达式的结果

#让c等于a,b中较大的数
c = a >b and a or b

print("10 and 0:", 10 and 0) # 0 ==》false
print(0 and 10)              # 0 ==》false
print(10+10 and 10)          # 10 ==》True
print(10+10 and None)        # None ==》False

4.2 or

a or b : 如果a或b任意一个表达式bool值为True,表达式bool值结果为True

运算顺序
  1. 计算a表达式的结果,如果a表达式结果bool为True,直接a表达式的结果

  2. 计算a表达式的结果,如果a表达式结果bool为False,计算表达式b的结果并返回b表达式的结果

    a or b or c or d

    从左往右计算,计算表达式的布尔值为False继续向后计算,

    表达式的布尔值为True直接返回表达式的结果

print(20 or 10)     #20 ==》true
print(None or 10)   #10 ==》 true

4.3 not

not a =>只有两个结果=>True 或 False

# 非运算
print(not 10)    # False
print(not None)  # True

练习

1.请写出条件"20<x<30或x<-100"的Python表达式

# 20<x<30 or x<-100

2.设有一个int型的y,请写出描述"y为奇数的表达式"

# y%2 == 1
# y%2 != 0

3.从健盘接收商品单价及数量,计算出价格

price = int(input("请输入商品的单价:"))
num = int(input("请输入商品的数量:"))
print(f"价格为:{price*num}")

5.成员关系运算符(in not in)

# 成员关系运算符 in , not in # => True / False
# 是否包含(字符串、[列表、元组、字典] => 容器类型)
mystr = "2022/03/26"
print('2022' in mystr)     # true
print('2022' not in mystr) # false

6.对象实例测试(is not is)

# 对象实例测试
# is,not is => 判断两个对象是不是同一个对象(同一块内存区域)
# 比较id,
# is =>       id(a) == id(b)
# not is =>   id(a) != id(b)

7.位运算

将数字转换为二进制再进行运算

# & => 按位与 => 同为1结果为1,否则为0
a = 2  # 0b10
b = 3  # 0b11
print(a & b)  # 0b10 =>2

# | => 按位或 => 任意一个为1结果为1,否则为0
a = 4  # 0b100
b = 5  # 0b101
print(a | b)  # 0b101 =>5

# ^ => 按位异或 => 两位相同结果为0,不相同结果为1
a = 4  # 0b100
b = 5  # 0b101
print(a ^ b)  # 0b1 =>1

# ~ 按位取反
a = 1
print(~a) ~a=-a-1

# 左移运算<< 右移运算 >>
# 将数据变成2进制
# 0b10 << 2  => 0b1000
# 0b1010 >> 2 => 0b10

8.一元运算(+a -a ~a)

9.运算符优先级

image.png

# 当对于运算优先级不确认,可以使用()优先级提高
print((-4)**2)
print(-4**2)
~a=-a-1

# 左移运算<< 右移运算 >>
# 将数据变成2进制
# 0b10 << 2  => 0b1000
# 0b1010 >> 2 => 0b10
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值