Python3高级运算符 - vip共享吧
  • 网站首页
  • IT技术笔记
    • Java教程
    • MySql数据库
    • PHP开发
    • Python教程
    • JavaScript
    • SEO优化
    • 常用工具
  • 好资源福利
    • 会员账号共享
  • 网站模板源码
    • 小程序源码
    • 网站源码
  • 共享网络资源
  • 更多功能
    • 留言吐槽
    • 文章归档
    • 我的邻居
    • 史上今日
    • 视频解析
    • 高清壁纸
    • 公告动态
    • 广告合作
    • 关于我们


导航菜单
  • 网站首页
  • IT技术笔记
    • Java教程
    • MySql数据库
    • PHP开发
    • Python教程
    • JavaScript
    • SEO优化
    • 常用工具
  • 好资源福利
    • 会员账号共享
  • 网站模板源码
    • 小程序源码
    • 网站源码
  • 共享网络资源
  • 更多功能
    • 留言吐槽
    • 文章归档
    • 我的邻居
    • 史上今日
    • 视频解析
    • 高清壁纸
    • 公告动态
    • 广告合作
    • 关于我们
Python

Python3高级运算符

2024/9/6 韩俊  Python教程 559 0

初级运算符在各种编程语言中都存在,在 Python 语言中还有一些高级运算符,这些高级运算符并不是所有的编程语言都支持的。

成员运算符

假设变量 val = "h", strone = "python",我们通过下面表格来了解成员运算符。

成员运算符 解释 例子
in 如果 val 的值在 strone 中存在返回 True,否则返回 False val in strone 结果为 True
not in 如果 val 的值在 strone 中不存在返回 True,否则返回 False val not in strone 结果为 False

成员运算符运算的结果为布尔值,val 作为一个元素,可以是任何类型的对象,只要在 strone 中能找到 val,就会返回 True。

val = "hon"
strone = "Python"
print(val in strone) 

身份运算符

身份运算符判断的是两个变量指向的对象的内存地址是否相同,Python 语言用 id 函数来获取变量指向的对象内存地址,我们通过如下表格了解身份运算符。

身份运算符 解释 例子
is is 是判断两个标识符是不是引用同一个对象 a is b 等价于( id(a) == id(b) )
is not is not 是判断两个标识符是不是引用不同对象 a is not b 等价于(id(a) != id(b))

用身份运算符判断的是变量指向的对象的内存地址,要注意被不同变量指向的不同对象的值相等,对象内存地址不一定相等。

a = 5
aa = 5
b = 5.1
bb = 5.1
c = False
cc = False
d = None
dd = None
strone = "hello"
strtwo = "hello"
listone = [1, 2]
listtwo = [1, 2]
tupleone = (1, 2)
tupletwo = (1, 2)
tuplethree = (1, [2, 3])
tuplefour = (1, [2, 3])

print(a is aa)                  # True
print(b is bb)                  # True
print(c is cc)                  # True
print(d is dd)                  # True
print(strone is strtwo)         # True
print(listone is listtwo)       # False
print(tupleone is tupletwo)     # True
print(tuplethree is tuplefour)  # False

注意:如上面代码,我们知道数字类型,布尔类型,NoneType 类型和字符串类型的值相同则 id 相同;list 类型的值相同而 id 不同;成员里面不含有变量的 tuple 类型对应的值相同则 id 相同,如果 tuple 里面的成员(或者成员的成员的...无限递归)出现有变量的话,虽然值相同,但 id 不同。 我们来好好分析一下:1.早期的 Python 解释器对布尔类型,数字类型,NoneType类型的变量都是通过分配不同的内存存储的,自从 Python 2.7 之后,解释器做了优化,所以那些类型只要值相同,所在的内存是同一个; 2.其实字符串类型的值是放在常量区,相同的字符串所在内存地址是一样的,也就是只要变量指向的字符串值相同,用的是同一块内存; 3.对于 list 类型所有的 Python 版本包括 Python 2 采用的都是一样的内存机制,就是无论 list 值是什么,在每一次创建的时候 Python 解释器都会重新分配一块内存; 4.对于 tuple 类型,Python 3.6(包括)之后的版本则会判断里面的成员(或者成员的成员的...无限递归)是否有变量,如果有的话则重新分配内存,否则共用一块内存,而 Python 2 采用的机制是只要创建一个新的 tuple 对象都会重新分配一块内存 。

大家注意到,我们上面所举的例子都是右值赋值的方式,如果是变量赋值呢,我们看下如下代码。

a = 5
aa = a
b = 5.1
bb = b
c = False
cc = c
d = None
dd = d
strone = "hello"
strtwo = strone
listone = [1, 2]
listtwo = listone
tupleone = (1, 2)
tupletwo = tupleone
tuplethree = (1, [2, 3])
tuplefour = tuplethree

print(a is aa)                  # True
print(b is bb)                  # True
print(c is cc)                  # True
print(d is dd)                  # True
print(strone is strtwo)         # True
print(listone is listtwo)       # True
print(tupleone is tupletwo)     # True
print(tuplethree is tuplefour)  # True

我只说一句:Python 解释器所有的变量之间赋值都是采用的浅拷贝方案,浅拷贝就是把赋值运算符(=)右边的变量里面所指向值的内存地址直接赋值给左边的变量。

三目运算符

在其他语言(C,C++,Java)中三目运算符的表示方式是:判定条件? 为真时的结果: 为假时的结果。 在 python 语言中三目运算符的表示方式是:为真时的结果 if 判定条件 else 为假时的结果。

score = 59
print("ok" if score >= 60 else "no")  # no

运算符优先级

当一个表达式中有多个不同种类的运算符时,要按运算符的优先级进行先后运算,我们通过如下表格了解运算符优先级。

运算符优先级 解释
() 最高优先级
** 指数
~ + - 按位翻转,一元的正号和负号
* / % // 乘,除,取模,取整
+ - 二元的加号和减号
>> << 位右移和左移
& 按位与
❘ ^ 按位或运算和按位异或运算
> < >= <= 大于,小于,大于等于,小于等于
== != <> 等于和不等于
= += -= /= //= %= 各种赋值
is is not 身份运算
in not in 成员运算
not 逻辑取反运算
and 逻辑与运算
or 逻辑或运算

如果一条表达式中有多个不同种类型的运算符时,用小括号 () 括起来的先进行运算,总之我们没必要死记硬背这些运算符优先级。

sex = "man"
score = 59

print(score >= 60 or sex == "man")      # 糟糕的写法
print((score >= 60) or (sex != "man"))  # 不错的写法

我们在写一个表达式的时候,尽量不要有多个不同种类型的运算符运算,避免代码可读性差,要把该表达式拆分多个只含有一个运算符的表达式。

sex = "man"
score = 59

print(score >= 60 or sex == "man")     # 糟糕的写法

scoreok = (score >= 60)
man = (sex == "man")
print(scoreok or man)                  # 很棒的写法

本节重要知识点

本节课讲的运算符运算属于高级运算符,要深入理解运算的对象和结果。

运算符优先级不要死记硬背,要学会写出可读性强的代码。

点赞:0 分享

上一篇
mysql中怎么创建和查询外键
下一篇
Python3初级运算符
作者头像 作者名称 作者性别
韩俊

热门推荐

1 Python3函数自定义和调用
2 Python3函数参数详解
3 Python异常处理
4 Python3匿名函数
5 Python文件处理和输入输出(IO)
6 Python3初级运算符

评论列表

取消回复

    •  
      Login

      韩俊

      趁你现在还有时间,尽你自己最大的努力,努力做成你最想做的那件事,成为你最想成为的那种人,过着你最想过的那种生活。这个世界永远比你想的要更精彩,不要败给生活。

      退出登陆
      • 10358文章
      • 455评论
      • 80微语
  • 广告赞助

  • 二零二五年07月
    一二三四五六日
     123456
    78910111213
    14151617181920
    21222324252627
    28293031   
  • 分类

    • 网站模板源码
    • IT技术笔记
    • 好资源分享
    • 共享网络资源
  • 最新文章

      • 健身馆开张祝福语简短
        • 老师们新春祝福语简短
          • 高考加油祝福语简短
            • 老婆工作辛苦祝福语简短
              • 虎年祝福语简短创意
                • 文艺诗歌生日祝福语简短
                  • 大班毕业集体祝福语简短
                    • 姐妹蛋糕搞笑祝福语简短
  • 热门文章

    • 酷狗音乐VIP账号 酷狗音乐会员账号共享2017.01.29更新
    • 芒果tv vip会员账号 芒果tv会员账号共享2017.01.29更新
    • 爱奇艺vip账号 爱奇艺/PPS会员账号共享2016.12.12更新
    • 优酷/土豆vip会员账号 优酷会员账号共享2017.01.29更新
    • 活动:免费获得爱奇艺VIP/PPS会员账号50天以上的使用权!
    • 酷我音乐VIP账号 酷我音乐会员账号共享2016.12.31更新
    • 暴风影音会员账号 暴风影音会员账号共享2016.12.31更新
    • m1905会员账号 m1905会员账号共享2016.10.21更新
  • 最新评论

    • https://www.vipshare8.com/content/templates/meta/Static/images/tx/10.jpg

      你丫的 文章写得太好了 支持下!![F3...

    • https://www.vipshare8.com/content/templates/meta/Static/images/avatar.jpg

      很棒!刚在某网站看到这个,很欣赏,可惜下...

    • https://www.vipshare8.com/content/templates/meta/Api/qqtx.php/?qq=3861064027

      呃呃呃 oooo

    • https://www.vipshare8.com/content/uploadfile/202103/thum-490d1614564497.png

      回复了111:根据激活的时间有一年的有效期!

    • https://www.vipshare8.com/content/templates/meta/Api/qqtx.php/?qq=792480561

      到2025就到期了吗?

    • https://www.vipshare8.com/content/uploadfile/202103/thum-490d1614564497.png

      [blockquote]打卡时间:16:...

    • https://www.vipshare8.com/content/templates/meta/Static/images/tx/7.jpg

      俊哥,想借用迅雷一用!但需要手机验证!看...

    • https://www.vipshare8.com/content/templates/meta/Api/qqtx.php/?qq=3293901900

      感谢大大的分享

    • https://www.vipshare8.com/content/uploadfile/202103/thum-490d1614564497.png

      回复了好奥v:如果没有解析成功,可以切换接口...

    • https://www.vipshare8.com/content/templates/meta/Api/qqtx.php/?qq=131241242441

      现在视频解析网站怎么用不了啦?

  • 网站统计 I 当前在线:121人

    • 本站管理:1位
    • 用户总数:593位
    • 置顶文章:2篇
    • 日志总数:10358篇
    • 微语总数:80条
    • 评论总数:455条
    • 标签总数:83条
    • 页面总数:8页
    • 分类总数:14个
    • 链接总数:16条
    • 运行天数:3745天
    • 最后更新:7月30日
    • 登录
    • 注册
    • 找回
    Copyright © 2025vip共享吧网站地图 网站备案豫ICP备19004194号-1

    免责声明:本站资源仅供用于学习和交流,本站部分素材内容来源于网络,如有侵权/投稿等,请及时联系站长.

    • 首页
    • 秒懂百科 秒懂百科
    • 搜索
    • 史上今日

    大家都在搜

    • 手机赚钱软件
    • 网易云音乐会员
    • nginx
    • 百度文库下载
    • 搜狐视频vip账号
    • m1905会员账号共享
    • seo
    • 迅雷VIP账号共享
    • 网赚
    • 华数tv会员账号分享
    • 优酷账号共享
    • 网盘赚钱
    • 电影抢先看
    • 乐视会员账号共享
    • 芒果视频
    • swoole
    • 
    • 