Python运算符

1.运算符

1.1运算符的概念

  • 运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+”

1.2运算符的分类

  • 算术运算符
  • 比较运算符
  • 赋值运算符
  • 逻辑运算符
  • 位运算符
  • 成员运算符
  • 身份运算符
  • 三目运算符

2.算术运算符

2.1算术运算符分类

  • 加法运算符 表现形式 +
  • 减法运算符 表现形式 -
  • 乘法运算符 表现形式 *
  • 除法运算符 表现形式 /
  • // 整除,只会保留计算后的整数位,总会返回一个整型
  • % 取模,求两个数相除的余数
  • ** 幂运算,求一个值的几次幂

2.2算术运算符的应用(简单举例)

加法

a1 = 2
b1 = 3
a2 = 'hello'
b2 = 'world'
print(a1 + b1)
print(a2 + b2)
print(a1 + a2)

5
helloworld
Traceback (most recent call last):  
TypeError: unsupported operand type(s) for +: 'int' and 'str'

  • 我们可以看到int类型的数据和str类型的数据都可以使用加法但是intstr不可同时使用

减法

a1 = 2
b1 = 3
a2 = 'hello'
b2 = 'world'

print(a1 - b1)
print(a2 - b2)
print(a2 - a1)

Traceback (most recent call last):
  
    print(a2 - b2)
TypeError: unsupported operand type(s) for -: 'str' and 'str'
-1
  • 减法只适用于int类型的数据,不支持str类型的数据

乘法

a1 = 2
b1 = 3
a2 = 'hello'
b2 = 'world'
print(a1 * b1)
print(a2 * a1)
print(a2 * b2)


Traceback (most recent call last):
    print(a2 * b2)
TypeError: can't multiply sequence by non-int of type 'str'
6
hellohello
  • 乘法支持int类型数据相乘,以及int类型数据和str类型数据相乘,不支持str类型数据和str类型数据相乘

除法

a1 = 2
b1 = 3
a2 = 'hello'
b2 = 'world'
print(a1 / b1)
print(a2 / b2)
print(a2 / a1)


Traceback (most recent call last):
    print(a2 / b2)
TypeError: unsupported operand type(s) for /: 'str' and 'str'
0.6666666666666666
  • 除法不支持str类型的数据
  • 除法计算结果是浮点数,即使两个数都是整数,结果也是浮点数

整除

a1 = 20
b1 = 3
print(a1 / b1)
print(a1 // b1)

6.666666666666667
6
  • 只取整数部分,总返回一个int类型的值

取模

a1 = 20
b1 = 3
print(a1 / b1)
print(a1 % b1)

6.666666666666667
2
  • 余数运算,可以得到两个整数相除的余数

幂运算

a1 = 20
b1 = 3
print(a1 ** b1)  # 20 的三次方

8000

课堂扩展

  • 如果需要同时得到商和余数,可以用divmod()
    该方法的返回值是tuple (x//y, x%y).
a1 = 20
b1 = 3
print(divmod(a1, b1))

(6, 2)
  • 因为浮点数精度的问题,Python还存在一些计算方面的小问题要解决这个问题,可以导入decimal模块
print(0.1 + 0.1 + 0.1 - 0.3)
print(Decimal('0.1') + Decimal('0.1') + Decimal('0.1') - Decimal('0.3'))

5.551115123125783e-17
0.0

3.比较运算符

3.1比较运算符分类

  • 比较是否相等的运算符 表现形式 ==
  • 比较是否不相等的运算符 表现形式 !=
  • 比较是否大于的运算符 表现形式 >
  • 比较是否小于的运算符 表现形式 <
  • 比较是否大于等于的运算符 表现形式 >=
  • 比较是否小于等于的运算符 表现形式 +<

3.2比较运算符的应用(简单举例)

== 运算符

a = 10
b = 20
c = 10
a1 = 'hello'
b1 = 'world'
c1 = 'hello'
print(a == b)
print(a == c)
print(a1 == b1)
print(a1 == c1)


False
True
False
True

!=运算符

a = 10
b = 20
c = 10
a1 = 'hello'
b1 = 'world'
c1 = 'hello'
print(a != b)
print(a != c)
print(a1 != b1)
print(a1 != c1)


True
False
True
False

> 运算符

a = 10
b = 20
c = 10
a1 = 'hello'
b1 = 'world'
c1 = 'hello'
print(a > b)
print(a > c)
print(a1 > b1)
print(a1 > c1)


False
False
False
False

<运算符

a = 10
b = 20
c = 10
a1 = 'hello'
b1 = 'world'
c1 = 'hello'
print(a < b)
print(a < c)
print(a1 < b1)
print(a1 < c1)


True
False
True
False

>=运算符

a = 10
b = 20
c = 10
a1 = 'hello'
b1 = 'world'
c1 = 'hello'
print(a >= b)
print(a >= c)
print(a1 >= b1)
print(a1 >= c1)


False
True
False
True

<=运算符

a = 10
b = 20
c = 10
a1 = 'hello'
b1 = 'world'
c1 = 'hello'
print(a <= b)
print(a <= c)
print(a1 <= b1)
print(a1 <= c1)


True
True
True
True

总结与注意事项

  • 返回值为bool值
print(True == 1)
print(False == 0)

True
True
  • ==比较数值(int与str不能直接比较)
a = 10
a1 = 'hello'
print(a == a1)


False
  • != <>不等于
    python3中<>已弃用
    python2中还在使用
  • 字符串与字符串之间是比较ASCII值
  • 在连续比较,python的解释机制
a = 10
b = 20
c = 10
d = 30
print(b > a > c)    # b > a and a > c
print(a < b < d)    # a < b and b < c
print((b > a) > 1)    # Ture and Ture > 1


False
True
False

4.赋值运算符

4.1赋值运算符分类

  • 简单的运算符 表现形式 =
  • 加法赋值运算符 表现形式 +=
  • 减法赋值运算符 表现形式 -=
  • 乘法赋值运算符 表现形式 *=
  • 除法赋值运算符 表现形式 /=
  • // 整除赋值运算符 表现形式 //=
  • % 取模赋值运算符 表现形式 %=
  • ** 幂运算赋值运算符 表现形式 **=

2.2赋值运算符的应用(简单举例)

=

a = 10  # 把 10 赋值给 a
print(a)


10

+=

a = 10
a += 2    # 等效于a = a + 2
print(a)


12

-=

a = 10
a -= 2    # 等效于a = a - 2
print(a)

8

*=

a = 10
a *= 2    # 等效于a = a * 2
print(a)

20

/=

a = 10
a /= 2    # 等效于a = a / 2
print(a)


5.0

//=

a = 10
a //= 2    # 等效于a = a // 2
print(a)


5

%=

a = 10
a %= 2    # 等效于a = a % 2
print(a)


0

**=

a = 10
a **= 2    # 等效于a = a ** 2
print(a)


100

注意事项

  • +=不能拆开写 + =,以此类推

5.逻辑运算符

5.1逻辑运算符分类

  • 布尔‘与’运算符 表现形式 and
  • 布尔‘或’运算符 表现形式 or
  • 布尔‘非’运算符 表现形式 not

5.2逻辑运算符的应用(简单举例)

and

  • a and b a与b都为True则返回为True,否则为False
a = True
b = True
a1 = False
b1 = False
print(a and b)
print(a and a1)
print(a1 and b1)


True
False
False

or

  • a or b a与b只要有一个为True则返回为True,否则为False
a = True
b = True
a1 = False
b1 = False
print(a or b)
print(a or a1)
print(a1 or b1)


True
True
False

not

  • not a 当a为True, not a则为False
a = True
a1 = False
print(not a)
print(not a1)


False
True

注意事项

  • 短路(懒惰)原则
    and运算符运行时,遇到第一个为False则不会继续判断下一个值
    or运算符运行时,遇到第一个为True则不会继续判断下一个值
  • and or not(全部都是小写字母)

6.位运算符

在这里插入图片描述

按位运算符是把数字看作二进制来进行计算的。

7.成员运算符

7.1成员运算符

python 中,innot in 是用来作为逻辑判断的另一种方式。
文字解释可以理解成这样。
in 右侧的内容里,是否包含了左侧的内容。 包含返回真,不包含返回假。
not in 右侧的内容里是否不包含左侧的内容。不包含返回真,包含返回假。
innot in 可以放在任何允许添加条件判断的位置。如whileif 等。

7.2成员运算符的应用(简单举例)

list1 = [1, 2, 3, 4, 5, 6]
a = 1
b = 7
if a in list1:
    print('a是list1的元素')
else:
    print('a不是list1的元素')
if b in list1:
    print('b是list1的元素')
else:
    print('b不是list1的元素')


a是list1的元素
b不是list1的元素

注意事项

全部小写

8.身份运算符

8.1身份运算符

is 用于判断两个变量是否引用同一个, 会对比其中两个变量的地址。

is not 用于判断两个变量是否引用自不同的对象。也会比较地址

8.2身份运算符的应用(简单举例)

a = b = [1, 2]
c = [1, 2]
print(a is b)
print(a is c)
print(a is not b)
print(a is not c)

True
False
False
True

注意事项

is与比较运算符==的区别,两者有根本上的区别,切记不可混用:
is用于判断两个变量的引用是否为同一个对象(可使用id()查看),而==用于判断变量引用的对象的值是否相等!

9.三目运算符

9.1三目运算符

python中的三目运算符表示方法:
True_statements if expression else False_statements

9.2三木运算符的应用(简单举例)

a = 10
b = 20
if a > b:
    print('a的值大')
else:
    print('b的值大')
print('a的值大' if a > b else 'b的值大')



b的值大
b的值大

运算符的优先级

下表列出了从最高到最低优先级的所有运算符。优先级高的运算符优先计算或处理,同级别的按从左往右的顺序计算(赋值运算符除外,它是按从右往左的顺序)

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值