• 有没有上城客在越南的踪迹? 2019-10-14
  • 本人几天前就吃了几个粽子了。 2019-10-14
  • 德媒:起好中文名,洋品牌入华第一步 2019-10-10
  • 紫光阁中共中央国家机关工作委员会 2019-10-10
  • 鹅肝做成冰淇淋 玉米做成小螃蟹?这位意大利厨神太6了 2019-10-05
  • 库恩:2017,站在历史长河中看中国这一年 2019-09-19
  • 【昆明天气】最新昆明今天天气,实时提供昆明气温、空气质量、24小时天气预报、生活指数查询 2019-09-12
  • 拆迁背后玩猫腻造成国家巨额经济损失 南昌这名官员“栽”了 2019-09-12
  • 竹编:缝隙里的乡愁文章中国国家地理网 2019-08-29
  • 习近平:真抓实干埋头苦干万众一心 夺取脱贫攻坚战全面胜利 2019-08-25
  • 回复@笑傲江湖V:咱那么多帖子一个赞都没有,又是咋回事呢? 2019-08-25
  • 新能源汽车产业升级将呈三大变化 2019-08-19
  • 次仁卓玛一家的端午节 2019-08-16
  • 回复@看着就想笑,不要以你现在满脑子的资产阶级的思想去度量共产主义社会人们的思想。呵呵! 2019-08-14
  • 聚焦两会:五年间习近平去的第一个“团组”是哪些? 2019-08-14
  • 浙江省快乐12走势图表

     找回密码
     立即注册

    QQ登录

    只需一步,快速开始

    查看: 613|回复: 0
    打印 上一主题 下一主题

    浙江省快乐12走势图: Python之父:为什么操作符很有用?

    [复制链接]

    浙江省快乐12走势图表 www.at929.com 27

    主题

    28

    帖子

    92

    金币

    连长

    Rank: 7Rank: 7Rank: 7

    积分
    108

    社区QQ达人新兵爱心论坛帅哥

    跳转到指定楼层
    楼主
    发表于 2019-4-24 16:11:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    这是我在python-ideas上发布的一些东西,但我认为这些很有趣,应该分享给更多的人。
    最近有很多关于合并两个dict(词典)的运算符的讨论。
    这促使我思考为什么有些人喜欢运算符,我想起了30多年前与导师Lambert Meertens的一次讨论。
    对于数学家来说,运算符对于他们的思考方式至关重要。我们来选取一个简单的操作,比如将两个数相加,并尝试研究它的一些行为。在学习中有迷茫不知如何学习的朋友小编推荐一个学Python的学习q u n 227  -435-  450可以来了解一起进步一起学习!免费分享视频资料
    add(x, y) == add(y, x) (1)
    式(1)表示了加法的交换律。它通常用运算符来书写,这使得它更简洁:
    x + y == y + x (1a)
    这似乎是一个小小的收获。
    现在我们来考虑一下结合律:
    add(x, add(y, z)) == add(add(x, y), z) (2)
    式(2)可以用运算符重写:
    x + (y + z) == (x + y) + z (2a)
    这比式(2)容易理解得多,并且我们发现括号是多余的,所以现在我们可以这样写:
    x + y + z (3)
    没有歧义(+ 运算符绑定到左边还是右边并不重要)。
    许多其他定律也可以很容易的使用运算符来写。这里还有一个关于加法恒等元素的例子:
    add(x, 0) == add(0, x) == x (4)
    相比于
    x + 0 == 0 + x == x (4a)
    这里的总的思想就是一旦你学会了这个简单的表示法,用它们写的方程就比用函数表示法写的方程更容易“操作”——就好像我们的大脑用不同的大脑机制来掌握运算符,这是更有效率的方法。
    我认为,使用运算符编写的公式更容易被“视觉化”处理就与此有关: 它们利用了大脑的视觉处理机制,而这一机制在很大程度上是在潜意识中运作的,并且它会告诉大脑的意识部分它看到了什么(比如,“椅子”而不是“几块木头连在一起”)。函数符号在我们的大脑中则必须走一条不同的路径,这是无意识的(它与内容的阅读和理解有关,这是在比视觉处理更晚的年龄段才学会/训练的)。
    当你将多个运算符结合在一起时,视觉处理的功能就会变得非常明显。例如,考虑一下分配律:
    mul (n,add(x, y)) == add(mul (n, x) mul (n, y)) (5)
    这写起来很恼火,我相信一开始你是不会看到这个规律的(或者至少你不会立刻看到它,如果我没有提到这是分配律的话)。
    与下式比较:
    n * (x + y) == n * x + n * y (5a)
    注意,这里也使用了相对的运算符优先级。通常数学家们会把它写得更紧凑:
    n(x+y) == nx+ny (5b)
    但是,遗憾的是,目前这超出了Python解析器的能力。
    运算符表示法的另一个非常强大的方面是,可以方便地将它们应用于不同类型的对象。例如,定律(1)到(5)在x、y和z是相同大小的向量,而n是标量(用0向量代替字面量“0”)时也适用,如果它们是矩阵(同样,n必须是一个标量)也适用。
    你可以这样处理不同域中的对象。例如,上面的定律(1)到(5)也适用于函数(n也是一个标量)。
    通过明智地选择运算符,数学家们可以运用他们的视觉大脑来帮助他们更好地进行数学研究: 他们会更快地发现新的有趣的定律,因为有时黑板上的符号就会跳到你面前,给你提供一条通往难以捉摸的数学证明的道路。
    现在,编程并不完全等同于数学,但我们都知道可读性很重要,这就是Python中运算符重载的作用。一旦你内化了运算符具有的简单属性,使用+号进行字符串或列表连接将比纯OO表示法更具可读性,上面(2)和(3)解释了(部分程度上)为什么是这样。

                                   
    登录/注册后可看大图



    当然,这样做绝对有可能做过火——然后你就会使用Perl。但我认为,那些指出“已经有办法做到这一点”的人忽略了一点,即真正理解这一点是比较容易的:
    d = d1 + d2
    和下面相比:
    d = d1.copy ()
    d.update(d2) #修正:这一行之前是错误的
    这不仅仅是少了几行代码的事: 第一种形式允许我们使用我们的视觉处理,以帮助我们更快的看到它的意思,并且不会影响我们大脑的其他部分(例如,这些部分可能已经被跟踪d1和d2的意思占据)。
    当然,任何事情都是有代价的。你必须学习运算符,并且在应用于不同对象类型时必须学习它们的属性。(数学中也是如此——对于数字,x*y == y*x,但是这个属性不适用于函数或矩阵; 另一方面,正如结合律一样, x+y == y+x适用于所有情况。)
    “但是性能呢?”我听见你这样问。好问题。在我看来,可读性第一,性能第二。在基本的例子(d = d1 + d2)中,与使用update的两行代码版本相比,没有性能损失,而且可读性明显提高。我能想到很多情况,性能差异无关紧要,但可读性是最重要的,对我来说,这是默认的假设(即使在Dropbox——我们最重要的性能代码已经用丑陋的Python或Go重写过了)。对于少数性能至关重要的情况,很容易将运算符版本转换为其他版本——*一旦你确认了这是很有必要的*(可能是通过分析得出d的)。

    C VC C++ MFC 汇编 函数 脚本 辅助 多开 注入 内存 插件 破解 基址 窗口 大漠 绑定 编程 交流 论坛 实例 源码
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    VC中文网 - 豫ICP备14012807号|小黑屋|联系客服|金币冲值|浙江省快乐12走势图表

    GMT+8, 2019-10-16 01:09 , Processed in 0.109375 second(s), 24 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 浙江省快乐12走势图表 返回列表
  • 有没有上城客在越南的踪迹? 2019-10-14
  • 本人几天前就吃了几个粽子了。 2019-10-14
  • 德媒:起好中文名,洋品牌入华第一步 2019-10-10
  • 紫光阁中共中央国家机关工作委员会 2019-10-10
  • 鹅肝做成冰淇淋 玉米做成小螃蟹?这位意大利厨神太6了 2019-10-05
  • 库恩:2017,站在历史长河中看中国这一年 2019-09-19
  • 【昆明天气】最新昆明今天天气,实时提供昆明气温、空气质量、24小时天气预报、生活指数查询 2019-09-12
  • 拆迁背后玩猫腻造成国家巨额经济损失 南昌这名官员“栽”了 2019-09-12
  • 竹编:缝隙里的乡愁文章中国国家地理网 2019-08-29
  • 习近平:真抓实干埋头苦干万众一心 夺取脱贫攻坚战全面胜利 2019-08-25
  • 回复@笑傲江湖V:咱那么多帖子一个赞都没有,又是咋回事呢? 2019-08-25
  • 新能源汽车产业升级将呈三大变化 2019-08-19
  • 次仁卓玛一家的端午节 2019-08-16
  • 回复@看着就想笑,不要以你现在满脑子的资产阶级的思想去度量共产主义社会人们的思想。呵呵! 2019-08-14
  • 聚焦两会:五年间习近平去的第一个“团组”是哪些? 2019-08-14
  • (排列五走势图表)带坐标连线 黑龙江十一选五前一最大遗漏 中国竞彩软件下载 金沙国际娱乐场 九亿平台下载 网赌输了千万别想翻本 怎样玩五分彩稳赚 江苏e球彩直播 香港三肖中特之特码网 上海时时乐带连线走势图 平特肖公式 黑龙江p62玩法开奖结果查询 北京pc蛋蛋谁开奖的 北京单场计算器500 福彩网官方彩下载