编写高质量代码改善python程序91个建议学习

第一章

建议1:理解pythonic的相关概念

狭隘的理解:它是高级动态的脚本编程语言,拥有很多强大的库,是解释从上往下执行的

特点:

美胜丑,显胜隐,简胜杂,杂胜乱,平胜陡,疏胜密

python定义

#python排序

def quicksort(arr):

less=[];greater=[]

if len(arr)<=1:

return arr

pivot=arr.pop()

for x in arr:

if x<=pivot:

less.append(x)

else:

greater.append(x)

return quicksort(less)+[pivot]+quicksort(greater)

arr=[9,8,4,5,32,64,2,1,0,10,19,27]

print (quicksort(arr))

#结果:[0, 1, 2, 4, 5, 8, 9, 10, 19, 27, 32, 64]

代码风格

多个变量之间的交换方式,基本语法

a,b=b,a

原理

对于多变量之间的转换

采用的是异或方式实现多个变量之间的转换,如下

a ^=b;

b^=a;

a^=b;

请看这里面的解释 :http://blog.csdn.net/magictong/article/details/3321232

http://www.cnblogs.com/haoshine/p/5117433.html

http://lionelliu.com/?p=970

异或的解释

&按位与            二进制中两个数,二进位都为1时,结果为1,否则为0.

|按位或             二进制中两个数,二进位有1时,结果都为1,否则为0.

^按位异或         二进位中两个数,二进位想异时,结果为1.

~翻转        x的翻转是-(x+1),即正数变负数,负数变正数

#遍历

def fo_r(d):

#第一种遍历

for i in range(len(d)):

return #语句体

#第二种遍历

for i in d:

return

关闭文件

with它是一种含有迭代器的风格方式

with open() as f:

pass

切片

s=[1,2,3,4]

s[::-1]

推荐使用

list(reversed(s))

连接字符串:%s,+

推荐.format(*args,**kw)

使用python的框架或者库来提升你的工作效率

框架如:django,tornado,flask等

库:time,requests

如果需要可以去pipy官方下载,

pipy地址如下:https://pypi.python.org/pypi

编写pythonic代码

规则

1:要避免劣化代码

(1):避免只用大小写来区分不同对象

(2):避免使用容易引起混淆的名称,包括重复使用上下文中已经存在的变量名来表示不同的类

型,误用内建方法或者函数

(3)不要害怕使用过长的变量名

编写高质量代码改善python程序91个建议学习01的更多相关文章

  1. 编写高质量代码--改善python程序的建议(六)

    原文发表在我的博客主页,转载请注明出处! 建议二十八:区别对待可变对象和不可变对象 python中一切皆对象,每一个对象都有一个唯一的标识符(id()).类型(type())以及值,对象根据其值能否修 ...

  2. 编写高质量代码--改善python程序的建议(八)

    原文发表在我的博客主页,转载请注明出处! 建议四十一:一般情况下使用ElementTree解析XML python中解析XML文件最广为人知的两个模块是xml.dom.minidom和xml.sax, ...

  3. 编写高质量代码--改善python程序的建议(七)

    原文发表在我的博客主页,转载请注明出处! 建议三十四:掌握字符串的基本用法 编程有两件事,一件是处理数值,另一件是处理字符串,在商业应用编程来说,处理字符串的代码超过八成,所以需要重点掌握. 首先有个 ...

  4. 编写高质量代码–改善python程序的建议(五)

    原文发表在我的博客主页,转载请注明出处! 建议二十三:遵循异常处理的几点基本原则 python中常用的异常处理语法是try.except.else.finally,它们可以有多种组合,语法形式如下: ...

  5. 编写高质量代码--改善python程序的建议(四)

    原文发表在我的博客主页,转载请注明出处! 建议十八:有节制的使用from...import语句 python提供了三种方式引入外部模块: import语句 from...import... __imp ...

  6. 编写高质量代码--改善python程序的建议(三)

    原文发表在我的博客主页,转载请注明出处! 建议十三:警惕eval()的安全漏洞 相信经常处理文本数据的同学对eval()一定是欲罢不能,他的使用非常简单: eval("1+1==2" ...

  7. 编写高质量代码–改善python程序的建议(二)

    原文发表在我的博客主页,转载请注明出处! 建议七:利用assert语句来发现问题断言(assert)在很多语言中都存在,它主要为调试程序服务,能够快速方便地检查程序的异常或者发现不恰当的输入等,可防止 ...

  8. 编写高质量代码--改善python程序的建议(一)

    原文发表在我的博客主页,转载请注明出处! 初衷 python是一个入门十分容易的编程语言,但是想要写好python却是一件不容易的事情,如果不是专业使用python的人,只是将python作为一个脚本 ...

  9. 编写高质量代码 改善Python程序的91个建议 (读后 小记)

    此书是自己好久之前买的,当时总觉得Python语言中有各种trick, 总是要自己猝不及防的掉入到陷阱之中, 看了一些资料后发现了这本书,感觉很是不错,不过可惜自己平时总是杂事太多,总是找不到整块的时 ...

随机推荐

  1. Android Game

    收起相关游戏 cytus 机械迷城 小小炼狱 deemo 神庙逃离 现代战争4零点行动 植物大战僵尸2中文版 时空幻境 无尽之剑3 超级救火队 迷你冲撞 大战僵尸鸟 侍魂2 flappy bird 混 ...

  2. 自定义控件 进度条 ProgressBar-2

    使用 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:bqt ...

  3. js-事件委托

    事件委托一般用于动态生成的元素中使用,如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8& ...

  4. log4net截取配置错误信息,(验证配置信息是否配置正确)

    在</system.web>之后 <!--log4错误日志配置:开始--> <system.diagnostics> <trace autoflush=&qu ...

  5. notification:object not locked by thread before notify()

    今天写notification练习时,误将NotificationManager.notify(0, notification);写成notification.notify(); 代码如下 publi ...

  6. c - 逆序/正序输出每位.

    #include <stdio.h> #include <math.h> /* 判断一个正整数的位数,并按正序,逆序输出他们的位. */ int invert(int); vo ...

  7. channel c3 disabled, job failed on it will be run on another channel

    今天执行备份时,报错: allocated channel: c3 channel c3: sid=131 instance=orcl2 devtype=DISK   RMAN-03009: fail ...

  8. spring 配置文件 数据库引入

    一.mysql数据库引入 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSourc ...

  9. 利用System.Net.Mail和多线程实现邮件发送

    对于邮件发送,一般来说,程序会响应超过1秒,这样对于用户体验来说,让用户等待的时间过长,而且发送的邮件越多时间就越长,所以这里我利用了线程的来处理邮件发送这种耗时的工作,废话不多说,直接上代码 pri ...

  10. flash里面调用js

    在flash里面直接调用js 用这个:ExternalInterface.call("test");  test是函数名