对任何一门语言来说,学习编码规范都是第一要务,它制定了“游戏规则”,约束了我们的行动,我们只有在这个规则内编码才能被正确执行。想要写好Python代码,了解Python相关编码规范也是必要的。
接下来跟着我一起来了解一下吧~
Python 是一种解释型语言,不需要编译和链接,因此可以节省大量开发时间,但牺牲的是运行效率。
注:还有一种是编译型语言,比如C、Java等,需要有一个编译过程,编译成机器码执行,因此比解释型语言运行效率高,但开发调试没有解释型语言方便。
由于Python是动态编程语言,所以在定义变量时并不需要事先指定变量的数据类型,变量的定义和初始化是同时进行的。Python解析器会根据初始化值的数据类型动态确定变量的类型。
注:与之对应的是静态编程语言,比如C、Java等,变量使用之前需要声明,且在其生命周期内不能改变!
举个栗子~
a = 1
b = True
c = "hello world"
print("a的数据类型:" ,type(a))
print("b的数据类型:" ,type(b))
print("c的数据类型:" ,type(c))
c = 3.5
print("c的数据类型:" ,type(c))
输出如下:
从输出结果可以看出,变量赋值时,相应的数据类型也已确定了。并且变量的数据类型是随时可以改变的,可以看到变量c先是字符串类型,后来变为浮点型,真是太灵活了!
一般来说,Python的编码格式为UTF-8。但在Python2中,如果Python源码文件没有声明编码格式,Python解释器会默认使用ASCII编码,因此需要在开头统一加上编码格式声明。
# -- coding: utf-8 --
Python3 中字符默认编码是 UTF-8,所以无需再显示声明编码格式。
如果需要改成其他的编码格式,可以在Python源文件的第一行加上如下声明。
# -*- coding: gbk -*-
在C、Java等大众编程语言中,需要在每个语句的末尾添加分号,但Python并非如此。Python奉行大道至简,你不需要添加不必要的字符和语法。在Python中,一条语句结束于一行的结尾(方括号,引号或括号除外)
a = 1
print(a)
simple is best!
显示拼接行:两个及两个以上的物理行可用反斜杠(\)拼接为一个逻辑行。
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
隐式的行拼接可以带有注释。后续行的缩进不影响程序结构。后续行也允许为空白行。
与C、Java用 {}来定义代码块不同,Python使用缩进来区分不同的代码块,所以对缩进有严格要求。一般是以4个空格为缩进单位,相同逻辑层(同一个代码块)中的各行代码,缩进量必须一致。
我们来小试一下~
isPrint = False
if isPrint:
print("1")
print("2")
print("3")
可以看到,只会输出3:
再看一个栗子~
a = 1
print(a)
运行出错:unexpected indent,print(a)属于单独代码块,需要顶格。
学习一门语言,最有成就的就是看到程序跑通,输出“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))
可以看到,即使我们输入了数字,输出的类型也还是字符串!
编码过程中,注释必不可少,Python中主要有单行注释(#开头)与多行注释(3个单引号/双引号)
# 单行注释
"""
多行注释
"""
'''
多行注释
'''
使用必要的空行可以增加代码的可读性,通常在顶级定义(如函数或类的定义)之间空两行,而方法定义之间空一行,另外在用于分隔某些功能的位置也可以空一行。
def say_hi():
print("say hi")
def print_hi(name=5):
print("print hi")
强烈推荐仅使用空格而不用制表符,因为制表符和空格的不同会导致 Python 解释为两个不同的层次。
空格使用规则:
# 正确示例代码
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基本都能检查出来这些语法错误,并能够快速的标准格式化。
Python中下划线有着特殊的含义,总的来说有以下几点(其实挺烦的,毕竟下划线很难敲):
Python中的变量名要遵循一定的规则,如果违反,在运行Python的时候就会引发错误,一般要遵循以下原则:
ProductName = "AAA" # 大驼峰
productName = "BBB" # 小驼峰
_product_name = "CCC" # 下划线
11productName = 11 # 不能以数字开头
MAX_COUNT = 10
class Farm():
pass
class AnimalFarm(Farm):
pass
class _PrivateFarm(Farm):
pass
def run():
pass
def run_with_env():
pass
class Person():
def _private_func():
pass
import os
import sys
更多的Python学习资料,可以到这儿「链接」获取,持续不间断地免费更新Python资料~