005-小白之路-python运算符

本文全面解析Python中的各类运算符,包括算术、关系、逻辑、位运算符等,详细介绍了运算符的使用方法、优先级及自定义类的比较规则。通过实例演示了如何重写__eq__方法实现对象的自定义比较,以及成员测试运算符的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 运算符:也称操作符
  2. 算术运算符、关系运算符、逻辑运算符、位运算符和其他运算符

算术运算符

一元运算符

取反运算:-a

二元运算符

  1. ±*/
  2. % 取余 ** 幂 // 商
  3. + *可以用于字符串、元组和列表

关系运算符

是比较两个表达式的大小关系的运算,结果是布尔类型,True和False
== != < <= > >=
字符串、列表和元组也可以比较

逻辑运算符

对布尔类型进行运算,结果也是布尔类型not and or

位运算符

是以二进制bit为单位进行运算的,操作数和结果都是整型
& | ^ ~ >> <<

赋值运算符

赋值运算符只是一种简写,一般用于变量自身的变化
+=加赋值 a += b
-= 减赋值 a -= b
*= /= %= **= //= &= |= ^= <<= >>=

同一性测试运算符

就是测试两个对象是否是同一个对象,类似与 == 运算符,不同之处是 == 是测试两个对象的内容是否相同,当然如果同一对象 == 也返回 True
同一性测试运算符有两个:is 和 is not

# /usr/bin/python
# -*- coding: utf-8 -*-

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

p1 = Person('Tony', 18)
p2 = Person('Tony', 18)

print(p1 == p2)  # False
print(p1 is p2)  # False

自定义类person,有两个实例变量,实例化了两个对象
== 虽然是比较两个对象的内容是否相等,但是也需要告诉对象的比较规则是什么,这需要
重写__eq__方法,指定比较规则

# /usr/bin/python
# -*- coding: utf-8 -*-

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __eq__(self, other):
        if self.name == other.name and self.age == other.age:
            return True
        else:
            return False


p1 = Person('Tony', 18)
p2 = Person('Tony', 18)

print(p1 == p2)  # True
print(p1 is p2)  # False

重写__eq__方法,定义了同时相等,对象菜相等

成员测试运算符

可以测试在一个序列sequence对象中是否包含某一个元素
成员测试符号有:in 和 not in

print('a' in 'apple')
print(2 in [1,2])

运算符优先级

优先级由高到低

1.  ()	
2. f(参数):函数调用	
3. [start:end],[start:end:step]:分片
4.  [index]:下标 	
5. . :引用类成员
6. ** 幂
7. ~ 位反
8. +,- 正负号
9. *,/,%
11. >>  <<
12. &
13. ^
14. |
15. in,not in,is,not is,<,<=,>,>=,<>,!=,==
16. not
17. and
18. or
19. lambda

大体:算术》位运算》关系》逻辑》赋值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值