行结构和缩进
在Python中,分号是可选的,当使用分号时,可以将多条语句写在一行上,否则,程序的每条语句都是以换行符结束,可以使用斜杠\另起一行,将长语句分为几行
In [1]: a = 3 * 4\
...: + 1
In [2]: a
Out[2]: 13
另外,在定义字符串时使用三引号、列表、元组和字典时,也可以分布在多行,不需要使用续行符
In [4]: s = """ Hello
...: World
...: """
In [5]: l = [1, 3,
...: 4
...: ]
缩进表示不同的代码块,如函数体,条件语句,循环和类。代码块中首条语句的缩进是任意的,但是整个代码块的缩进必须保持一致。
In [7]: if a:
...: pass
...: else:
...: pass
...:
当一个空的代码块时,可以使用pass语句做占位符。
在进行编程时,尽管可以使用Tab键进行缩进,但是并不鼓励这样所,Python首选的是用空格,因为遇到制表符时,系统会将其移动到下一个为8倍数字符处。可能出现空格键和tab键混用的情况。
#后面的内容都表示注释,但出现在字符串中的#号无注释作用
除非在交互式环境下,否则解析器将忽略所有的空白行,交互模式下空白行表示输入结束
标识符和保留字
标识符是识别变量、函数、类、模块和其他对象的名称。标识符可以包含字母、数字和下划线,但是以非数字开头。标识符是区分大小写的,$、%、@等特殊字符不能出现在标识符中。另外,保留字如if,else,for,while等不能作为标识符。
保留字有
and del from nonlocal try as ellif global not while assert else if or with break except import pass yield class exec in print continue finally is raise def for lambda return
以下划线开始或者结束的标识符通常有特殊的含义,如意下划线开始的标识符不能使用import导入,前后均有双下划线的如init是保留的特殊方法,石油前面带有双下划线的标识符是用于是吸纳私有类成员的
数字字面量
数字字面量可以包含额外的字符以便于阅读,如0x1234。Python内置的数字字面量分为四种类型:布尔型、整数、浮点型、复数。
布尔型:True和False,其整数值分别为1和0
整型:Python中的整型是任意位数的,如果要定义一个很大的整数,只需要写出左右位数就可以了。也可以在大数钱添加L或小写l标志,但是如今这种区分不必要了。
浮点型:如123.4e+03的数字表示浮点型
复数:如12.3+23.5J,在整数或者浮点数后面加上j或者J
字符串字面量
字符串定义可以使用单引号、双引号或三引号。三种形式在语义上没有区别,但是单引号和双引号的字符串必须定义在一行上,而三引号可以定义在多行上并包含格式符(如回车等)。由空格。换行符或续行符隔开的相邻字符串将被连接起来。
In [1]: s1 = "hello li"
In [2]: s2 = """hello
...: li"""
In [3]: s3 = "hello" 'li'
In [4]: s1
Out[4]: 'hello li'
In [5]: s2
Out[5]: 'hello\nli'
In [6]: s3
Out[6]: 'helloli'
使用反斜杠\可以用于转义字符,如换行符、反斜杠、引号和非打印字符,在使用时,需要在前面添加反斜杠进行转义。
在python 2中,字符串对应于8bit字符或面向字节的数据,它们无法完全支持国际字符集和Unicode。为了解决这种限制,Python 2对Unicode数据使用了单独的字符串类型,如果想输入Unicode字符串字面量,要在第一个引号钱添加前缀u。
在Python 3中不必添加这个前缀字符,添加后会出现语法错误,因为所有字符串都是Unicode编码。运行Python 2时,使用-u选项就可以不用添加前缀u,因为所有字符都会作为Unicode对待。
容器
Python容器数据类型包括列表、元组和字典等包含其他对象的集合
In [17]: a = [1, "hello", [4]] #列表
In [18]: b = (12, "li", 3) #元组
In [19]: c = {"a":2, "b":"hello"} #字典
文档字符串
如果模块、类或函数定义的第一天语句是一个字符串,则该字符串将成为相关对象的文档字符串
class ClassName(object):
"""docstring for ClassName"""
def __init__(self, arg):
super(ClassName, self).__init__()
self.arg = arg
通过doc属性可以访问文档字符串,如
print ClassName.__doc__
文档字符串的缩进必须与定义中的代码块的缩进一致
装饰器
函数、方法或类前面定义一个特殊的符号,称为装饰器,其目的是修改定义后面的行为。装饰器使用@符号表示,必须放在单独行并且位于对应的函数、方法或类之前,也可以使用多个装饰器,但每个装饰器必须位于不同行上。
class fun(object):
@staticmethod
def foo():
pass
源码编码
编写Python源程序一般使用标准7bit的ASCII码,但是也可以在Python程序的第一行或第二行包含一个特殊的编码注释,就可以使用不同的编码编写Python
# coding: UTF-8
def function():
pass
保存到文件也需要保存到相应的格式,如上面的文件需要保存到utf-8格式,一般IDE会自动保存,但是如果是使用文本编辑器,则需要注意