编写高质量代码改善python程序91个建议学习01
编写高质量代码改善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的更多相关文章
- 编写高质量代码--改善python程序的建议(六)
原文发表在我的博客主页,转载请注明出处! 建议二十八:区别对待可变对象和不可变对象 python中一切皆对象,每一个对象都有一个唯一的标识符(id()).类型(type())以及值,对象根据其值能否修 ...
- 编写高质量代码--改善python程序的建议(八)
原文发表在我的博客主页,转载请注明出处! 建议四十一:一般情况下使用ElementTree解析XML python中解析XML文件最广为人知的两个模块是xml.dom.minidom和xml.sax, ...
- 编写高质量代码--改善python程序的建议(七)
原文发表在我的博客主页,转载请注明出处! 建议三十四:掌握字符串的基本用法 编程有两件事,一件是处理数值,另一件是处理字符串,在商业应用编程来说,处理字符串的代码超过八成,所以需要重点掌握. 首先有个 ...
- 编写高质量代码–改善python程序的建议(五)
原文发表在我的博客主页,转载请注明出处! 建议二十三:遵循异常处理的几点基本原则 python中常用的异常处理语法是try.except.else.finally,它们可以有多种组合,语法形式如下: ...
- 编写高质量代码--改善python程序的建议(四)
原文发表在我的博客主页,转载请注明出处! 建议十八:有节制的使用from...import语句 python提供了三种方式引入外部模块: import语句 from...import... __imp ...
- 编写高质量代码--改善python程序的建议(三)
原文发表在我的博客主页,转载请注明出处! 建议十三:警惕eval()的安全漏洞 相信经常处理文本数据的同学对eval()一定是欲罢不能,他的使用非常简单: eval("1+1==2" ...
- 编写高质量代码–改善python程序的建议(二)
原文发表在我的博客主页,转载请注明出处! 建议七:利用assert语句来发现问题断言(assert)在很多语言中都存在,它主要为调试程序服务,能够快速方便地检查程序的异常或者发现不恰当的输入等,可防止 ...
- 编写高质量代码--改善python程序的建议(一)
原文发表在我的博客主页,转载请注明出处! 初衷 python是一个入门十分容易的编程语言,但是想要写好python却是一件不容易的事情,如果不是专业使用python的人,只是将python作为一个脚本 ...
- 编写高质量代码 改善Python程序的91个建议 (读后 小记)
此书是自己好久之前买的,当时总觉得Python语言中有各种trick, 总是要自己猝不及防的掉入到陷阱之中, 看了一些资料后发现了这本书,感觉很是不错,不过可惜自己平时总是杂事太多,总是找不到整块的时 ...
随机推荐
- OpenSSL之PKey的EVP封装
在Openssl中,非对称加密涉及到两个密钥.一个为公开的密钥(公钥),一个为非公开的密钥.而OpenSSL中非对称加密算法有RSA.DSA.ECC,他们的原理不同,因此其密钥结构不同.下面我们列出我 ...
- iOS动画开发之五——炫酷的粒子效果
在上几篇博客中,我们对UIView层的动画以及iOS的核心动画做了介绍,基本已经可以满足iOS应用项目中所有的动画需求,如果你觉得那些都还不够炫酷,亦或是你灵光一现,想用UIKit框架写出一款炫酷的休 ...
- Java基础知识强化33:String类之String类的获取功能
1. String类的获取功能 int length() // 获取字符串中字符的个数(长度) char charAt(int index)//根据位置获取字符 int indexOf(int ch) ...
- CentOS6.7 用户
1.添加普通用户[root@server ~]# useradd chenjiafa //添加一个名为chenjiafa的用户[root@server ~]# passwd chenjiafa ...
- (转)JSON对象长度和遍历方法
最近在修改一个HTML页面的JS的时候遍历JSON对象,却怎么也调试不通过.怪这个HTML网页不知道用了什么方法禁止了js错误提示,刚开始的时候不知道有这个问题,用chrome的开发人员工具都没发现错 ...
- (四)JS学习笔记 - 模式 - 观察者模式
理解观察者模式 简单的讲,一个对象作为特定任务或是另一对象的活动的观察者,并且在这个任务或活动发生时,利用事件的形式通知观察者. 观察者的使用场合 当一个对象的改变需要同时改变其它对象,并且它不知道具 ...
- poj1850
是因为我好久不刷题了吗,这个题竟然做了俩小时,好几个思路都被推翻 用dp数组预处理出范围是a->a+x字符y长度有多少种递增串 然后例如def首先求a__有多少种情况那么自然后面就是只有b即dp ...
- tomcat 显示目录文件列表
conf/web.xml中,listings改为true,重启 http://liusu.iteye.com/blog/794613 <servlet> <servlet-name& ...
- HTML&CSS基础学习笔记1-简单网页中有哪些标签?
一个简单网页中有哪些HTML标签? 平时我们看到的网页,都是由HTML的标签来组成的.HTML标签非常多,我们先来认识一部分. 1. <html></html>称为根标签,所有 ...
- c# 与 c++ 编译
C#的所有方法封装在类中,类的方法没有先后之分,无需声明.//而C++必须在函数调用前,由编译器检查参数类型是否合法,所以必须知道函数的原形(protype),所以必须提前声明函数的签名(signat ...