python开发规范
⑴ 【python基础】python基本语法规则有哪些
Python基本语法
Python的语法相对比C,C++,Java更加简洁,比较符合人的正常思维。本篇介绍Python的基本语法,通过本篇文章你可以学到以下内容。
掌握Python的基本语法
识别Python中的关键字
Python是一门脚本语言,有以下特点:
面向对象:类
语法块:使用缩进进行标记
注释: #单行注释,"""多行注释""",'''我也是多行注释''
打印与输出:print(), input()
变量: 变量在赋值的时候确定变量的类型
模块:通过import 模块名进行加载模块
Python的标识符
标识符是用户编程时使用的名字,用于给变量、常量、函数、语句块等命名,以建立起名称与使用之间的关系。标识符通常由字母和数字以及其它字符构成。
标识符的命名遵循以下规定:
开头以字母或者下划线_,剩下的字符数字字母或者下划线
Python遵循小驼峰命名法
不是使用Python中的关键字进行命名
代码示例:
num = 10 # 这是一个int类型变量
错误命名示例:
123rate(数字开头)、 mac book pro(含有空格),class(关键字)
Python关键字
以下列表中的关键字不可以当作标识符进行使用。Python语言的关键字只包含小写字母。
⑵ “Python编程规范”为Python代码添加注释
功能要求
为Python代码添加注释,对Python程序代码进行说明。
实例代码
'''多行注释开始
下面的代码根据变量x的值计算y
注意代码中使用缩进表示代码块
多行注释结束'''
x = 5
if x > 100:
y = x * 5 - 1 # 单行注释:x>100时执行该语句
else:
y = 0 # x <= 100时执行该语句
print(y) # 输出y
运行结果
知识说明
注释用于为程序添加说明性的文字,帮助程序员更好的阅读和理解程序代码。Python解释器会忽略注释的内容,即注释的内容不会被Python解释器执行。
Python注释分为单行注释和多行注释。
单行注释以符号“#”开始,当前行中符号“#”及其后的内容为注释语句。单行注释可以独占一行,也可放在语句末尾。 说明: 在Pycharm中使用“ctrl + /”可以添加/取消单行注释。
多行注释是用3个英文单引号“'''多行注释文本'''”或3个双引号“"""注释文本"""”进行注释。 注意: 由一对三个单引号或一对三个双引号括起来的内容被认为是注释,但不能由三个单引号和三个双引号混合使用。
⑶ python程序有哪些编码规范
编码格式声明
通常,编码格式声明是必需的。如果 python 源码文件没有声明编码格式,python 解释器会默认使用 ASCII 编码,一旦源码文件包含非ASCII编码的字符,python 解释器就会报错。以 UTF-8 为例,以下两种编码格式声明都是合乎规则的。
缩进
统一使用 4 个空格进行缩进。绝对不要用tab, 也不要tab和空格混用。对于行连接的情况,我一般使用4空格的悬挂式缩进。例如:
引号
自然语言使用双引号
机器标识使用单引号
正则表达式使用双引号
空行
编码格式声明、模块导入、常量和全局变量声明、顶级定义和执行代码之间空两行
顶级定义之间空两行,方法定义之间空一行
在函数或方法内部,可以在必要的地方空一行以增强节奏感,但应避免连续空行
导入模块
导入总应该放在文件顶部,位于模块注释和文档字符串之后,模块全局变量和常量之前。导入应该按照从最通用到最不通用的顺序分组,分组之间空一行
标准库导入
第三方库导入
应用程序指定导入
命名规范
模块尽量使用小写命名,首字母保持小写,尽量不要用下划线
类名使用驼峰(CamelCase)命名风格,首字母大写,私有类可用一个下划线开头
函数名一律小写,如有多个单词,用下划线隔开
私有函数可用一个下划线开头
变量名尽量小写, 如有多个单词,用下划线隔开
常量采用全大写,如有多个单词,使用下划线隔开
⑷ 如何提升Python编程能力
一、Python之禅(The Zen of Python)
The Zen of Python是Python语言的指导原则,遵循这些基本原则,你就可以像个Pythonista一样编程。具体内容你可以在Python命令行输入import this看到:
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
# 优美胜于丑陋(Python以编写优美的代码为目标)
Explicit is better than implicit.
# 明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)
Simple is better than complex.
# 简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)
Complex is better than complicated.
# 复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁)
Flat is better than nested.
# 扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)
Sparse is better than dense.
# 间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题)
Readability counts.
# 可读性很重要(优美的代码是可读的)
Special cases aren't special enough to break the rules.
Although practicality beats purity.
# 即便假借特例的实用性之名,也不可违背这些规则(这些规则至高无上)
Errors should never pass silently.
Unless explicitly silenced.
# 不要包容所有错误,除非你确定需要这样做(精准地捕获异常,不写except:pass风格的代码)
In the face of ambiguity, refuse the temptation to guess.
# 当存在多种可能,不要尝试去猜测
There should be one-- and preferably only one --obvious way to do it.
# 而是尽量找一种,最好是唯一一种明显的解决方案(如果不确定,就用穷举法)
Although that way may not be obvious at first unless you're Dutch.
# 虽然这并不容易,因为你不是 Python 之父(这里的Dutch是指Guido)
Now is better than never.
Although never is often better than *right* now.
# 做也许好过不做,但不假思索就动手还不如不做(动手之前要细思量)
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
# 如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然(方案测评标准)
Namespaces are one honking great idea -- let's do more of those!
# 命名空间是一种绝妙的理念,我们应当多加利用(倡导与号召)
这首特别的“诗”开始作为一个笑话,但它确实包含了很多关于Python背后的哲学真理。Python之禅已经正式成文PEP 20,具体内容见:PEP 20
二、PEP8: Python编码规范(PEP8: Style Guide for Python Code)
Abelson & Sussman在《计算机程序的构造和解释》一书中说道:程序是写来给人读的,只是顺带让机器执行。所以,我们在编码时应该尽量让它更易读懂。PEP8是Python的编码规范,官方文档见:PEP 8,PEP是Python Enhancement Proposal的缩写。PEP8包括很多编码的规范,下面主要介绍一下缩进和命名等内容。
空格和缩进(WhiteSpace and Indentation)
空格和缩进在Python语言中非常重要,它替代了其他语言中{}的作用,用来区分代码块和作用域。在这方面PEP8有以下的建议:
1、每次缩进使用4个空格
2、不要使用Tab,更不要Tab和空格混用
3、两个方法之间使用一个空行,两个Class之间使用两个空行
4、添加一个空格在字典、列表、序列、参数列表中的“,“后,以及在字典中的”:“之后,而不是之前
5、在赋值和比较两边放置一个空格(参数列表中除外)
6、紧随括号后面或者参数列表前一个字符不要存在空格
Python命名
命名规范是编程语言的基础,而且大部分的规范对于高级语言来说都是一样的,Python的基本规范如下:
1、方法 & 属性:joined_lower
2、常量:joined_lower or ALL_CAPS
3、类:StudlyCaps
4、类属性:interface, _internal, __private
5、camelCase only to conform to pre-existing conventions
以上内容只是对PEP8做了非常简单的介绍,由于今天的主题不在于此,所以就不在这里多讲。想要更加深入的了解Python编码规范,可以阅读PEP8官方文档和Google Python编码规范等内容。
三、交换变量值(Swap Values)
在其他语言中,交换两个变量值的时候,可以这样写:
temp = a
a = b
b = temp
在Python中,我们可以简单的这样写:
b, a = a, b
可能你已经在其他地方见过这种写法,但是你知道Python是如何实现这种语法的吗?首先,逗号(,)是Python中tuple数据结构的语法;上面的语法会执行一下的操作:
1、Python会先将右边的a, b生成一个tuple(元组),存放在内存中;
2、之后会执行赋值操作,这时候会将tuple拆开;
3、然后将tuple的第一个元素赋值给左边的第一个变量,第二个元素赋值给左边第二个变量。
再举个tuple拆分的例子:
In [1]: people = ['David', 'Pythonista', '15145551234']
In [2]: name, title, phone = people
In [3]: name
Out[3]: 'David'
In [4]: title
Out[4]: 'Pythonista'
In [5]: phone
Out[5]: '15145551234'
这种语法在For循环中非常实用:
In [6]: people = [['David', 'Pythonista', '15145551234'], ['Wu', 'Student', '15101365547']]
In [7]: for name, title, phone in people:
...: print name, phone
...:
David 15145551234
Wu 15101365547
PS:在使用这种语法时,需要确保左边的变量个数和右边tuple的个数一致,否则,Python会抛出ValueError异常。
更多tuple的例子:
>>> 1,
(1,)
>>> (1,)
(1,)
>>> (1)
1
>>> value = 1,
>>> value
(1,)
我们知道:逗号(,)在Python中是创建tuple的构造器,所以我们可以按照上面的方式很方便的创建一个tuple;需要注意的是:如果声明只有一个元素的tuple,末尾必须要带上逗号,两个以上的元素则不需要。声明tuple的语法很简单,但同时它也比较坑:如果你发现Python中的变量不可思议的变成了tuple,那很可能是因为你多写了一个逗号。。
四、Python控制台的"_"(Interactive "_")
这是Python中比较有用的一个功能,不过有很多人不知道(我也是接触Python很久之后才知道的)。。在Python的交互式控制台中,当你计算一个表达式或者调用一个方法的时候,运算的结果都会放在一个临时的变量 _ 里面。_(下划线)用来存储上一次的打印结果,比如:
>>> import math
>>> math.pi / 3
1.0471975511965976
>>> angle = _
>>> math.cos(angle)
0.50000000000000011
>>> _
0.50000000000000011
PS:当返回结果为None的时候,控制台不会打印,_ 里面存储的值也就不会改变。
五、合并字符串(Building Strings from Sub strings)
假如现在有一个list,里面是一些字符串,你现在需要将它们合并成一个字符串,最简单的方法,你可以按照下面的方式去处理:
colors = ['red', 'blue', 'green', 'yellow']
result = ''
for s in colors:
result += s
但是,很快你会发现:这种方法非常低效,尤其当list非常大的时候。Python中的字符串对象是不可改变的,因此对任何字符串的操作如拼接,修改等都将产生一个新的字符串对象,而不是基于原字符串。所以,上面的方法会消耗很大的内存:它需要计算,存储,同时扔掉中间的计算结果。正确的方法是使用Python中的join方法:
result = ','.join(colors)
当合并元素比较少的时候,使用join方法看不出太大的效果;但是当元素多的时候,你会发现join的效率还是非常明显的。不过,在使用的时候请注意:join只能用于元素是字符串的list,它不会进行任何的强制类型转换。连接一个存在一个或多个非字符串元素的list时将抛出异常。