在Python寻找彩蛋:从“Hello World”的玄机到Python之禅

发表于:2020-5-11 10:00

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:读芯术    来源:读芯术

#
Python
  也许在你眼里,Python可能只是项目创建、模拟和自动化的工具;但在一些人那里,它就像是《头号玩家》的电影片场,处处暗藏“玄机”,充满了有趣的彩蛋。
  你是否已经厌倦了整体呆在家里?不如来探索Python中的隐藏功能和小惊喜吧!
  1. 最简单的“HelloWorld”
  你写出的第一行代码是什么?一千个哈姆雷特可能都只有同一个答案——“HelloWorld”。那么,你有没有想过, print( Hello World! )并不是打出这两个单词的唯一方法?
  实际上,只需导入Python开发人员隐藏的模块就可以实现HelloWorld。试试这个:
   >>> import __hello__
  Hello World!
  包括空格键在内,此代码只有16个字符!这可以说是“最简单的”HelloWorld程序之一。请注意,不能在Python程序中重新导入模块,所以每次运行时可以打印一次信息。
  2. Python之禅
  这是在PEP20中提出的概念。PEP是指Python的增强提案。
  Python是您最喜欢的语言吗?喜欢它什么?是设计吗?有20条描述Python设计的指导原则,可通过以下方式找到其中的19条:
 >>> import this
  剩下的那条去哪儿了?笔者猜测,人不可能无所不知。以下是前三条指导原则:
   Beautiful is better than ugly.
  Explicit is better than implicit.
  Simple is better than complex.
  必须感谢开发人员为制作如此优雅且易读的编程语言方面所付出的努力。这也是迄今为止Python开发者指南中唯一被称为“彩蛋”的“官方”程序。
  3. 体验反重力漫画
  一行Python代码,就可以体验反重力漫画!
 import antigravity
  试试看!请记住,这么做可能会被困在外太空,浏览几个小时xkcd网络漫画。
  4. 括号
  与许多其他编程语言不同,Python在构造语句、函数和循环时实际上并不使用花括号{},但以后可能会用。
  __future__ 模块包含不兼容更改,这些更改将在不久的将来强制实施。例如,在Python2.6或2.7中从__future__ 导入 print_function允许“print”变成接受参数 print()的函数,就像在Python 3中一样。
  看看从__future__开始,括号将如何工作:
   >>> from __future__ importbraces
  SyntaxError: not a chance
  5. this.py
  还记得Python之禅的前三行吗?
  深入挖掘并找到这个模块文件this.py后,就会发现,这是迄今为止最漂亮、最明确、最简单的代码。
  6. 散列
  无穷大和NaN的散列。
   >>> hash(float( inf ))
  314159
  >>> hash(float( nan ))
  0
  这个彩蛋是在Reddit上找到的。笔者真想知道生命、宇宙与万事万物的终极解答。(出处:《银河系漫游指南》。)
  7. 巴里叔叔
  关于运算符选择的争论已持续了42个年头。是时候解决了!
  这一问题是在PEP 401中提出的,以下内容并不难猜到。著名的Python开发者巴里·华沙 (又名巴里叔叔)被“选中”成为终身友好语言叔叔,简称FLUFL。
  他制定了一些“修改”,用钻石操作符<>替换不等式运算符 != 。如果同意巴里叔叔的观点,可以导入这个有趣的库,并且<> 语法将会生效,而 !=会导致语法错误。
   >>> from __future__ importbarry_as_FLUFL>>> 0 != 1
  SyntaxError: with Barry as BDFL, use  <>  instead of  != >>> 0<> 1
  True
  >>> 1 <> 1
  False
  其实彩蛋还有更多,接下来就自己探索吧,当你打开这扇门,Python世界从此妙趣横生。

      本文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号