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