乾明 编辑整理
量子位 出品 | 公众号 QbitAI

最近,GitHub上一个关于Python的工程完工了。

一个名为“暮晨”的贡献者,把一个非常有趣的Python项目,翻译成了中文版。

这个项目是《What the f*ck Python!》,专门介绍 Python 里面那些奇奇怪怪的语言坑。

关于项目

项目的主体构成部分就是示例,一共分为5个部分,分别是:

Strain your brain!/大脑运动!

Appearances are deceptive!/外表是靠不住的!

Watch out for the landmines!/小心地雷!

The Hidden treasures!/隐藏的宝藏!

Miscellaneous/杂项

以上,总计51个示例。

每一个示例的结构都是一样的,以“Mutating the immutable!/强人所难”为例:

首先,会给出代码:

some_tuple = ("A", "tuple", "with", "values")another_tuple = ([1, 2], [3, 4], [5, 6])

然后,给出Output( Python version):

>>> some_tuple[2] = "change this"TypeError: 'tuple' object does not support item assignment>>> another_tuple[2].append(1000) # 这里不出现错误>>> another_tuple([1, 2], [3, 4], [5, 6, 1000])>>> another_tuple[2] += [99, 999]TypeError: 'tuple' object does not support item assignment>>> another_tuple([1, 2], [3, 4], [5, 6, 1000, 99, 999])

然后,对意外输出的结果进行简短的描述,在这个示例中,就是:

我还以为元组是不可变的呢…

接下来,就会对示例进行说明,简要叙述发生了什么以及为什么会发生。如有必要, 也会举例说明。

在这个示例中是这样的:

  • 引用
    https://docs.python.org/2/reference/datamodel.html

不可变序列 不可变序列的对象一旦创建就不能再改变。(如果对象包含对其他对象的引用,则这些其他对象可能是可变的并且可能会被修改; 但是,由不可变对象直接引用的对象集合不能更改。)

  • += 操作符在原地修改了列表. 元素赋值操作并不工作, 但是当异常抛出时, 元素已经在原地被修改了。

有些地方,贡献者还会给出译注,比如整个示例中就是:

对于不可变对象, 这里指tuple, +=并不是原子操作, 而是extend和=两个动作, 这里=操作虽然会抛出异常, 但 extend 操作已经修改成功了。

其他还有50个示例,等你来看~

怎么使用?

当然,要学习一下怎么使用这个资源。项目贡献者在用法部分表示,最好依次阅读下面的示例。

然后,在阅读每一个示例的时候,这样做:

仔细阅读设置例子最开始的代码。

阅读输出结果。

确认结果是否如你所料。

确认你是否知道这背后的原理。

如果不知道, 深呼吸然后阅读说明 (如果你还是看不明白, 别沉默!可以提问题)。

如果知道, 给自己点奖励, 然后去看下一个示例。

此外,还可以在命令行阅读 WTFpython,有 pypi 包 和 npm 包(支持代码高亮),不过都是英文版的。

关于作者

这个项目的原作者,是一个名为Satwik Kansal的印度小哥。

GitHub上的介绍称,在深度学习和去中心化应用方面是一个“老司机”。

目前,英文版资源,标星已经8.3k了。

传送门

中文版:
https://github.com/leisurelicht/wtfpython-cn

英文原版:
https://github.com/satwikkansal/wtfpython

年度评选申请

加入社群

量子位AI社群开始招募啦,欢迎对AI感兴趣的同学,在量子位公众号(QbitAI)对话界面回复关键字“交流群”,获取入群方式;

此外,量子位专业细分群(自动驾驶、CV、NLP、机器学习等)正在招募,面向正在从事相关领域的工程师及研究人员。

进专业群请在量子位公众号(QbitAI)对话界面回复关键字“专业群”,获取入群方式。(专业群审核较严,敬请谅解)

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

这个Python资源在GitHub上标星超8000,现在被翻译成了中文 | 资源相关推荐

  1. GitHub上标星95k+超牛的《Java面试突击版》PDF

    前言 不论是校招还是社招都避免不了各种面试.笔试,如何去准备这些东西就显得格外重要.不论是笔试还是面试都是有章可循的,我这个有章可循'说的意思只是说应对技术面试是可以提前准备. 运筹帷幄之后,决胜千里 ...

  2. 高燃!GitHub上标星75k+超牛的Java面试突击版

    前言 不论是校招还是社招都避免不了各种面试.笔试,如何去准备这些东西就显得格外重要.不论是笔试还是面试都是有章可循的,我这个有章可循'说的意思只是说应对技术面试是可以提前准备. 运筹帷幄之后,决胜千里 ...

  3. GitHub上标星75k+超牛的《Java面试突击版》,分享PDF离线版

    前言 不论是校招还是社招都避免不了各种面试.笔试,如何去准备这些东西就显得格外重要.不论是笔试还是面试都是有章可循的,我这个有章可循'说的意思只是说应对技术面试是可以提前准备. 运筹帷幄之后,决胜千里 ...

  4. GitHub上标星75k+超牛的《Java面试突击版》,java开发实战经典第二版答案

    运筹帷幄之后,决胜千里之外!不打毫无准备的仗,我觉得大家可以先从下面几个方面来准备面试: 1.自我介绍.(你可千万这样介绍: "我叫某某,性别,来自哪里,学校是哪个,自己爱干什么" ...

  5. 太赞了,GitHub 上标星 115k+ 的 Java 教程!

    额,大家好啊,我是浑元形意门的学员小二哥(忍住别笑).就在五个半小时前,有个小伙伴私信我说,"哥,能推荐一些高质量的 Java 教程吗?" 迫不及待的同学可以直接拉到文末. 我回他 ...

  6. GitHub 上标星 115k+ 的 Java 教程

    额,大家好啊,我是浑元形意门的学员小二哥(忍住别笑).就在五个半小时前,有个小伙伴私信我说,"哥,能推荐一些高质量的 Java 教程吗?" 我回他,"教妹学 Java 不 ...

  7. 牛皮!这份GitHub上标星90.6K的Java面试指南+笔记,带你搞定96%的java面试

    前言 今年受疫情影响,面试难度增大,工作很难找,从延迟的金三银四,裁员的企业.人数众多的金九银十等方方面面都可以看得出来 今天,我们要分享的是,GitHub上标星90.6K的Java面试指南+笔记,这 ...

  8. 【干货】Github标星1.2K,Visual Transformer 最全最新资源,包含期刊、顶会论文

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨梁定康 编辑丨极市平台 导读 给大家分享一个超全面的visua ...

  9. 手机上的机器学习资源!Github标星过万的吴恩达机器学习、深度学习课程笔记,《统计学习方法》代码实现!...

    吴恩达机器学习.深度学习,李航老师<统计学习方法>.CS229数学基础等,可以说是机器学习入门的宝典.本文推荐一个网站"机器学习初学者",把以上资源的笔记.代码实现做成 ...

最新文章

  1. MinkowskiEngine实用函数和类
  2. 【趋势】吴军:未来机器将会控制98%的人
  3. Visual c++6.0 如何自定义一个光标,使其变成字
  4. 使用HtmlAgilityPack抓取网页数据
  5. [html] 在a标签中,怎样防止链接跳转?
  6. pytorch —— 池化、线性、激活函数层
  7. 用python实现(1.求输入的百倍,十位,个位数;2.输入a,b和ab间夹角,计算c边长;3.计算两点间曼哈顿距离;4.计算给定数据的几何平均数;5.计算向量的L1和L2范数)
  8. PIO导出Excel 设置样式
  9. linux activemq 日志,log4j通过ActiveMQ远程记录日志设计配置
  10. vue2.0实现银行卡类型种类的选择
  11. windows7 系统下载(2)
  12. linux chrome 缓存,Linux设置chrome缓存至内存,及开关机同步
  13. XCTF-Cat+Bug
  14. 1-开发环境--android文件系统的结构
  15. 猫眼CEO郑志昊:为什么说产品思维已“死”?
  16. 前端如何实现一键截图功能?
  17. 前端上传文件保存到变量中
  18. Linux之V4L2驱动框架
  19. cmd.exe专杀工具
  20. bzoj3785--骑士游戏--有“环”的动态规划

热门文章

  1. Python 爬下的必胜客数据背后,藏着什么样的信息?
  2. 程序员如何巧妙学习算法技巧?
  3. 为什么 React Native 连遭 Airbnb、Udacity 抛弃?
  4. 【2021Java最新学习路线】java后端开发入门
  5. java vo转map_javabean实体类对象转为Map类型对象的方法(转发)
  6. 翻译是不是计算机常用的颜色模式,关于颜色的翻译
  7. python灰色预测_灰色系统预测GM(1,1)模型
  8. 带格式文本html 直接复制粘贴,通过JS将带格式的文本复制到剪贴版的两种方法...
  9. php元类,什么是元类-python编程入门系列图文教程-PHP中文网教程
  10. c语言输出方框□怎么回事_值得收藏的 C语言指针讲解文章,确实不错!