对任何一门语言来说,学习编码规范都是第一要务,它制定了“游戏规则”,约束了我们的行动,我们只有在这个规则内编码才能被正确执行。想要写好Python代码,了解Python相关编码规范也是必要的。
接下来跟着我一起来了解一下吧~
1、解释型语言
Python 是一种解释型语言,不需要编译和链接,因此可以节省大量开发时间,但牺牲的是运行效率。
注:还有一种是编译型语言,比如C、Java等,需要有一个编译过程,编译成机器码执行,因此比解释型语言运行效率高,但开发调试没有解释型语言方便。
2、动态编程语言
由于Python是动态编程语言,所以在定义变量时并不需要事先指定变量的数据类型,变量的定义和初始化是同时进行的。Python解析器会根据初始化值的数据类型动态确定变量的类型。
注:与之对应的是静态编程语言,比如C、Java等,变量使用之前需要声明,且在其生命周期内不能改变!
举个栗子~
a = 1b = True c = "hello world"print("a的数据类型:" ,type(a))print("b的数据类型:" ,type(b))print("c的数据类型:" ,type(c))c = 3.5print("c的数据类型:" ,type(c))
输出如下:
从输出结果可以看出,变量赋值时,相应的数据类型也已确定了。并且变量的数据类型是随时可以改变的,可以看到变量c先是字符串类型,后来变为浮点型,真是太灵活了!
3、字符编码
一般来说,Python的编码格式为UTF-8。但在Python2中,如果Python源码文件没有声明编码格式,Python解释器会默认使用ASCII编码,因此需要在开头统一加上编码格式声明。
# -- coding: utf-8 --
Python3 中字符默认编码是 UTF-8,所以无需再显示声明编码格式。
如果需要改成其他的编码格式,可以在Python源文件的第一行加上如下声明。
# -*- coding: gbk -*-
4、无需分号
在C、Java等大众编程语言中,需要在每个语句的末尾添加分号,但Python并非如此。Python奉行大道至简,你不需要添加不必要的字符和语法。在Python中,一条语句结束于一行的结尾(方括号,引号或括号除外)
a = 1print(a)
simple is best!
5、多行拼接
显示拼接行:两个及两个以上的物理行可用反斜杠(\)拼接为一个逻辑行。
if 1900 < year < 2100 and 1 <= month <= 12 \ and 1 <= day <= 31 and 0 <= hour < 24 \ and 0 <= minute < 60 and 0 <= second < 60: # Looks like a valid date return 1
以反斜杠结尾的行,不能加注释;反斜杠也不能拼接注释。
隐式拼接行:Python会将圆括号、中括号和花括号中的行隐式的连接起来。
圆括号、方括号或花括号以内的表达式允许分成多个物理行,无需使用反斜杠。例如:
number_names = ['1', '2', '3', # 111 '4', '5', '6'] # 222
隐式的行拼接可以带有注释。后续行的缩进不影响程序结构。后续行也允许为空白行。
6、缩进风格
与C、Java用 {}来定义代码块不同,Python使用缩进来区分不同的代码块,所以对缩进有严格要求。一般是以4个空格为缩进单位,相同逻辑层(同一个代码块)中的各行代码,缩进量必须一致。
我们来小试一下~
isPrint = Falseif isPrint: print("1") print("2")print("3")
可以看到,只会输出3:
再看一个栗子~
a = 1 print(a)
运行出错:unexpected indent,print(a)属于单独代码块,需要顶格。
7、输入输出
学习一门语言,最有成就的就是看到程序跑通,输出“Hello world”。
Python中输入输出非常简单,常用的就是input()函数与print()函数。
print() 默认输出是换行的,如果要实现不换行需要在变量末尾加上end="";变量与字符串同时输出或多个变量同时输出时,需用, 隔开各项。
print("1")print("2的4次幂是", end="")print(2**4)
其实,end定义了语句结尾以什么符号分割。
input()接收一个字符串类型的参数,作为输入提示,返回值即用户在命令行中录入的值,不管用户录入什么数据,都会以字符串形式返回。
name = input("请输入你的名字:")print(name, type(name))age = input("请输入你的年龄:")print(age, type(age))
可以看到,即使我们输入了数字,输出的类型也还是字符串!
8、注释
编码过程中,注释必不可少,Python中主要有单行注释(#开头)与多行注释(3个单引号/双引号)
# 单行注释""" 多行注释"""''' 多行注释'''
9、空行
使用必要的空行可以增加代码的可读性,通常在顶级定义(如函数或类的定义)之间空两行,而方法定义之间空一行,另外在用于分隔某些功能的位置也可以空一行。
def say_hi(): print("say hi")def print_hi(name=5): print("print hi")
10、制表符还是空格
强烈推荐仅使用空格而不用制表符,因为制表符和空格的不同会导致 Python 解释为两个不同的层次。
空格使用规则:
在二元运算符两边各空一格,比如赋值(=)、比较(==, <, >, !=, <>, <=, >=, in, not in, is, is not), 布尔(and, or, not),算术操作符两边的空格可灵活使用,但两侧务必要保持一致
不要在逗号、分号、冒号前面加空格,但应该在它们后面加(除非在行尾)
函数的参数列表中,逗号之后要有空格
函数的参数列表中,默认值等号两边不要添加空格
左括号之后,右括号之前不要加添加空格
参数列表, 索引或切片的左括号前不应加空格
当'='用于指示关键字参数或默认参数值时,不要在其两侧使用空格
# 正确示例代码person(name[1], {addr: 2}, [])if x == 1: print x, y x, y = y, x a['key'] = list[index]def complex(real, imag=0.0): return magic(r=real, i=imag)# 错误示例代码:person( name[ 1 ] , { addr: 2 } , [ ] )if x == 1 : print x , y x , y = y , x a ['key'] = list [index]def complex(real, imag = 0.0): return magic(r = real, i = imag)
好在现在的IDE基本都能检查出来这些语法错误,并能够快速的标准格式化。
11、下划线
Python中下划线有着特殊的含义,总的来说有以下几点(其实挺烦的,毕竟下划线很难敲):
变量名中如果以_开头,则表示为私有变量,仅允许类内部使用。
__在类名称前使用双下划线表示特殊变量,表示私有类。
_xxx_ 表示Python预留变量,如_init_()表示类的构造函数。
xxx_,以一个下画线结尾,一般用于避免与 Python 关键词的冲突。
12、命名规范
Python中的变量名要遵循一定的规则,如果违反,在运行Python的时候就会引发错误,一般要遵循以下原则:
变量命名:变量只由小写字母、数字、下划线组成,且不能以数字开头,禁止使用其他字符;变量命名可以是大驼峰、小驼峰、下划线风格,只要整个项目统一命名规范即可。
ProductName = "AAA" # 大驼峰 productName = "BBB" # 小驼峰 _product_name = "CCC" # 下划线 11productName = 11 # 不能以数字开头
常量:常量命名使用大写字母,下划线分隔。
MAX_COUNT = 10
类命名:所有单词首字母大写,多个单词时,每个单词开头字母都要大写,私有类可用一个下划线开头。
class Farm(): passclass AnimalFarm(Farm): passclass _PrivateFarm(Farm): pass
函数命名:所有字母小写,多个单词时使用下划线连接,私有函数在函数前加一个下划线。
def run(): pass def run_with_env(): pass class Person(): def _private_func(): pass
模块:模块的命名尽量是小写的,下划线分隔。
import osimport sys
本文可能转载于网络公开资源,如果侵犯您的权益,请联系我们删除。