围绕一门语言,学习它的文化精髓,能让你成为一名更优秀的程序员。如果你还没读过Python之禅(Zen of Python) ,那么打开Python的命令提示符输入import this,列表中的每一项你都可以在这里找到相对应的例子。

吸引我注意力的一条是:

优雅胜于丑陋 (Beautiful is better than ugly)

看下面例子:

一个带有数字参数的list函数其功能是返回参数中的奇数可以分开写:

?

记住Python中那些非常简单的事

两个变量的交换:

?

参数在切片操作中的步骤,如:

?

一个特殊的例子 `x[::-1]`用来反转x的实用语法。

?

不要用可变对象作为默认参数值(Don't use mutable as defaults)

?

使用iteritems而不是items

iteriterms 使用的是 generators,所以当迭代很大的序列是此方法更好

?

此情景和range与xrange的关系相似。

使用isinstance 而不是type

不要这样做:

?

应该是这样:

?

至于为什么这样做,看这里:http://stackoverflow.com/a/1549854/504262

需要注意的是这里使用basestring而不是str是因为你可能会用一个unicode对象去检查是否为string,例如:

?

因为在Python中3.0以下的版本存在两种字符串类型str和unicode

学习各种集合(learn the various collections)

python有各种各样的容器数据类型,在特定情况下选择python内建的容器如:list和dict。通常更多像如下方式使用:

?

一种更好的方案如下:

?

一种更好的选择 collection类型defautdict:

?

其它集合

?

当创建类时Python的魔术方法:

?

条件赋值

?

表达式请起来恰恰像:如果y等于1就把3赋值给x,否则把2赋值给x,当然同样可以使用链式条件赋值如果你还有更复杂的条件的话。

?

然而到了某个特定的点,它就有点儿过分了。

记住,你可以在任何表达式中使用if-else例如:

?

func1将被调用如果y等于1的话,反之func2被调用。两种情况下,arg1和arg2两个参数都将附带在相应的函数中。

类似地,下面这个表达式同样是正确的

?

class1和class2是两个类

在有必要的时侯使用Ellipsis

创建类时,你可以使用__getitem__,让你的类像字典一个工作,拿下面这个类举例来说:

?

因为有了__getitem__,你就能够通过对象x的x[‘a']获取a的值,这应该是公认的事实。

这个对象通常用于继承Python的切片(slicing) (http://docs.python.org/library/stdtypes.html#bltin-ellipsis-object),如果添加如下语句:

?

我们就可以使用x[…]获取的包含所有项的序列

?

python之禅怎么关闭_《Python之禅》中对于Python编程过程中的一些建议相关推荐

  1. python之禅 中文_《Python之禅》中对于Python编程过程中的一些建议

    <Python之禅>中对于Python编程过程中的一些建议 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  <Python之禅>中对于Pyt ...

  2. python怎么复数乘方开方_运维必须掌握的 Python 宝典:值得每天复习一遍

    前言 本文旨在更好地总结 Python 基础知识,力求简明扼要,以供实战演练时能够快速查询遗忘的知识点. 学一门语言贵在坚持用它,不用就淡忘了,而记录下一篇文章也有助于日后快速回忆.全文分为两大部分, ...

  3. python线程池阻塞队列_福利又来啦!python多线程进阶篇

    使用Python中的线程模块,能够同时运行程序的不同部分,并简化设计.如果你已经入门Python,并且想用线程来提升程序运行速度的话,希望这篇教程会对你有所帮助. 通过阅读本文,你将了解到:什么是死锁 ...

  4. python webdriver点击指令_测开系列Selenium Webdriver Python(20)--Webdriver运行原理

    Webdriver运行原理 转帖请注明出处!谢谢 在开发Webdriver的自动化脚本过程中,Webdriver后台在创建WebDriver实例的过程中,先确认浏览器的原生组件中是否存在可匹配的版本. ...

  5. python竞赛试题及答案_竞赛信息 | 蓝桥杯大赛Python组

    蓝桥杯大赛 青少年创意编程Python组 竞赛规则及样题 - 竞赛规则 - 1 竞赛时长 Python编程组竞赛的选拔赛.省赛及国赛,竞赛时长均为120分钟,详细赛程安排另行通知. 2 竞赛形式 竞赛 ...

  6. python创建类统计属性_轻松创建统计数据的Python包

    python创建类统计属性 介绍 (Introduction) Sometimes you may need a distribution figure for your slide or class ...

  7. python就业需要的技能_教你如何快速掌握Python就业技能

    -人生苦短,为什么要学Python? 简单易学 应用广泛 大厂青睐 (油管大神评选的2020最值得学就业语言-Python) 因为以上的种种理由,无论是国外还是国内, Python都荣登2020最值得 ...

  8. python shell的无法保存_关于shell:如何保存Python交互式会话?

    我发现自己经常使用Python的解释器来处理数据库,文件等-基本上是半结构化数据的许多手动格式化.我没有按我想的那样适当地保存和清理有用的位.有没有一种方法可以将我的输入保存到外壳中(数据库连接,变量 ...

  9. 抖音python上的代码视频_资深程序员:十行Python代码教你爬取抖音视频!

    环境说明 环境: python 3.7.1 centos 7.4 pip 10.0.1 部署 [root@localhost ~]# python3.7 --version Python 3.7.1 ...

  10. python人生的不同阶段_从入门到入土的Python自学教程,用改变你的人生轨迹

    Python在近几年越来越受追捧,很多童鞋或者职场小伙伴想要提升技能-学习Python. 这是非常好的事情,但问题在于很多人不知道学Python做什么,所以什么零碎细末.艰难晦涩.长篇大论的都去看,很 ...

最新文章

  1. 模式设计概述:反应器(Reactor)模式
  2. 有人说Julia比Python好,还给出了5个理由
  3. duapp获取mysql用户名密码等等……
  4. 看看样条插值区间查找函数写的多细腻
  5. 介绍一种找bug的方法
  6. iostat -x命令诊断
  7. 在Ubuntu 14.04平台上利用Intel的GPU实现硬件加速--基于VAAPI
  8. IIS部署VUE刷新404问题如何解决?
  9. MySQL实现类似Oracle的序列
  10. matlab绘制等间距同心圆,CDR绘制等距离同心圆的多种方法
  11. VirtualBox中安装Android-x86详解
  12. (13)Spring框架----Spring与Mybatis的框架整合(XML配置详解)
  13. Verilog学习笔记 (四)QPSK调制实现
  14. 用户故事 | 工商银行核心应用 MySQL 治理实践
  15. 新MAC苹果M1芯片简要分析(是不是地表最强呢??)
  16. 阿里云--短信服务---开通步骤
  17. 荣耀60和荣耀x30max哪个好
  18. Python分析盘点2019全球流行音乐:是哪些歌曲榜单占领了我们?
  19. 深度学习6---案例:人民币识别实现
  20. 2021年10月8日模拟赛(保龄奇遇记)

热门文章

  1. biginteger 原理_Java Bigdecimal使用原理详解
  2. 学习STM32很简单?
  3. 我的特长是复制、粘帖
  4. 手把手教你研发属于自己的智能无人机
  5. 巧识滤波、稳压、比较、运放电路
  6. 基于FPGA的竞赛抢答器
  7. JAVA中的onkey_onKeyListener无法在虚拟键盘上工作
  8. java jpanel 缓冲画图_Java:Jpanel 缓冲区 图像
  9. mysql消息队列的原理_PHP和MySQL实现消息队列
  10. CodeForces 1110H. Modest Substrings