摘要:起步的成功一个原因是它的可读性,代码清晰易懂,更容易被人类所理解,但有时可读性会产生误解。的误解但是如果你尝试这个判断不见得管用。用来检查左侧和右侧是否是完全相同的对象。每种语言的结构都存在一些出乎意料的使用。
起步
Python 的成功一个原因是它的可读性,代码清晰易懂,更容易被人类所理解,但有时可读性会产生误解。
假如要判断一个变量是不是 17,那可以:
if x is 17:
x 是 17 肯定是比 x == 17 更加口语化的。
is的误解但是如果你尝试:
if name is "weapon":
这个判断不见得管用。is 用来检查左侧和右侧是否是完全相同的对象。如果有两个不同的字符串对象,每个对象的值是相同的,应该使用 == 来判断,因为 is 的用法与口语上的区别挺大的:
if 999 + 1 is 1000: # False
正因为这样的误解,在 if 判断条件上容易让初学者掉坑:
answer = "yes" if answer is "y" or "yes":
你会发现不管变量是什么值,判断都是为真。因为 is 的优先级高,相当于 if (answer is "y") or ("yes") 。
正确的方法应该是 if answer == "y" or answer == "yes" 或者 if answer in ("y", "yes") 。
is not 上的混淆>>> "something" is not None True >>> "something" is (not None) False
is not 是一个二元运算符,应该视为一个整体,不要因为中间空格而当成两个词。底层上,它们也是一个操作符,CPython 将 s is not None 翻译成的字节码为:
6 LOAD_NAME 0 (s) 8 LOAD_CONST 1 (None) 10 COMPARE_OP 9 (is not)
is not 是对 is 相对应的操作符。也可以视为是将 is 判断的结果再进行取反。
总结我同意 Python 非常易读。每种语言的结构都存在一些“出乎意料”的使用。这并不影响我对 Python 这门语言的喜爱,每个人都应该好好学习,并小心使用选择的语言。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/43713.html
摘要:行结束符之后的符号有二义性,使得该符号与上条语句能够无缝对接,不导致语法错误。然而在中,有几种特殊语句是不允许行结束符存在的。如果语句中有行结束符,会优先认为行结束符表示的是语句的结束,这在标准中称为限制产生式。 showImg(https://segmentfault.com/img/bVmyZB); 什么是 ASI ? 自动分号插入 (automatic semicolon i...
摘要:普通可迭代对象只有魔术方法,而不像迭代器一样拥有魔术方法,这意味着它无法实现自遍历过程,同时在经过循环的它遍历后,也不会破坏原有的结构。这两个是我创造的概念,详见进阶迭代器与迭代器切片。 showImg(https://segmentfault.com/img/remote/1460000019621809); 本文原创并首发于公众号【Python猫】,未经授权,请勿转载。 原文地址:...
摘要:如果你以逗号为分隔符,传递额外的参数,这些参数会被传递至函数,最终打印时每个参数之间会空一格。从上面的示例代码中我们就可以看出,使用函数有明显的好处与使用语句相比,我们现在能够指定其他的分隔符和结束符。这就是为什么将变成函数的原因。 本文首发于编程派的微信公众号。 原作者:Brett Cannon 原文链接:http://www.snarky.ca/why-print-became-...
摘要:以上原则,是基本原则。比如用指一组账号,就会被人误解为是类型的数据,事实上可能是也可能不是。不论如何,要记住一个标准明确赋值语句对于赋值语句,看官已经不陌生了。其实,赋值的样式不少,核心就是将变量和某对象对应起来。 变量命名 在《初识永远强大的函数》一文中,有一节专门讨论取名字的学问,就是有关变量名称的问题,本温故而知新的原则,这里要复习: 名称格式:(下划线或者字母)+(任意数目...
摘要:编写工作首先介绍了一个称为的内部组件表示,并解释了变更检测过程在视图上运行。本文主要由两部分组成第一部分探讨错误产生的原因,第二部分提出可能的修正。它对我意义重大,它能帮助其他人看到这篇文章。 在过去的8个月里,我大部分空闲时间都是reverse-engineering Angular。我最感兴趣的话题是变化检测。我认为它是框架中最重要的部分,因为它负责像DOM更新、输入绑定和查询列表...
阅读 3442·2023-04-25 18:52
阅读 2452·2021-11-22 15:31
阅读 1190·2021-10-22 09:54
阅读 2961·2021-09-29 09:42
阅读 550·2021-09-26 09:55
阅读 871·2021-09-13 10:28
阅读 1053·2019-08-30 15:56
阅读 2073·2019-08-30 15:55