编写高质量代码改善Python程序的91建议实践

 开始看机械工业出版社的《编写高质量代码改善Python程序的91建议》了,觉得很好懂也很好用,预备将书中有用代码全都实践一遍,环境是Pycharm! 

建议一:理解Pythonic概念

(1)Pythonic定义:体现Python自身特色的代码风格

#用Python实现快排
def quicksort(array):
    less = []; great = [] #此处分号是为了多行共行
    if len(array) <= 1:
        return array
    pivot = array.pop() #选择列表最后元素作为比较对象
    for x in array:
        if x <= pivot: less.append(x)
        else: great.append(x)
    return quicksort(less)+[pivot]+quicksort(great) #递归继续排序,此处的[]是为了格式转化

print(quicksort([9,8,4,5,32,64,2,1,0,10,19,27]))

结果:

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

(3)标准库的应用 

#当输出的变量变多后很难清楚哪一个占位符对应哪一个实参,一般是:
print("Hello %(name)s!" % {'name': 'Tom'})

#而更具Pythonic的代码则是使用str.format()方法:
print("{greet} from {language}.".format(greet = 'Hello world', language = 'Python'))

(4)Pythonic的库或框架

        (Flask)

建议2 :编写 Pythonic 代码

(文本文档PEP8 ,也可以pip下载应用程序PEP8)

因为编译器用的是pycharm所以很多规范会直接给出,比如在方法前需要两行空格 ,例如下图的方法前没有空行,会有波浪线,将鼠标移到波浪线处会有提醒规范

编写高质量代码改善Python程序的91建议实践_第1张图片

建议3:理解 Python 与 C语言的不同之处

(2)' 与 ":没有明显区别,仅仅在输入字符串内容不同时,在使用上存在微小差异。

(3) 三元操作符"?:":python中没有C? X:Y 其等价形式为 X if C else Y

x = 0
y = 2
print(x if x < y else y)
0

(4)switch...case:Python中没有switch...case,但可以用if-eli-else实现或者跳转表来实现:

 

你可能感兴趣的:(91建议)