Python语句结构
发表于:2007-06-11来源:作者:点击数:
标签:
编程语言的语句结构是一组支配如何用该语言写程序的基础规则。它是最底层的语言语法并且指定了,例如变量名字看起来如何以及什么字符用于评注。每个 Python源文件都好像其他的文本文件,是一条字符序列。你可以将它看成行,表征或参数序列。这些不同的造句法
编程语言的语句结构是一组支配如何用该语言写程序的基础规则。它是最底层的语言语法并且指定了,例如变量名字看起来如何以及什么字符用于评注。每个 Python源文件都好像其他的文本文件,是一条字符序列。你可以将它看成行,表征或参数序列。这些不同的造句法视角互相补充并加强。Python关于程序版面是非常特殊的,特别是相对于行和缩进来讲,所以你需要注意这点如果你学过其他语言,例如C++。
行和缩进一个Python程序有逻辑行序列构成,每个都有一个或多个物理行组成。每个物理行可以以评注结束。一个不在字符串中的英镑符号#开始一个评注。所有在# 后面的字符直到物理行结束都属于评注的一部分,并且Python直译程序会忽略他们。一个只包含空格(可能有评注)的行叫做blank line空行,它也被直译程序忽略。在一个交互直译程序线程,你必须输入一个空白物理行(没有空格或评注)来决定一个多行生命。
Python使用缩进来表示程序的块结构。不像其他语言,Python不会在一个声明块周围使用braces中括号或者开始/结束界定符:缩进是唯一暗示这种块的方法。Python程序中的每个逻辑行都使用其左边的空格缩进。所有在同一个块中的声明必须有相同的缩进,所有复合声明中的子句也要如此。标准 Python样式每一个缩进层使用四个空格。在源文件中的第一个声明必须没有缩进,换句话说它不可以以任何空格开始。另外,在交互直译程序提示> >>打入的生命不可以有任何缩进。
一个tab制表符逻辑上的加载8个空格,所以tab下一个字符归到逻辑列9,17,25。不要为了缩排混淆空格和制表符,因为不同工具(例如,编辑器,邮件系统,打印机)对tabs有不同的对待。-t和-tt选项对于Python直译程序保证了Python源代码中不会出现不一致的tab和space使用。你可以设置任何好的编译器扩充tabs到space,这样你写的Python源代码就会只包含spaces而没有tabs。这样你就知道所有工具,包括Python本身,会保持一致的处理你源文件里面重要的缩进。
表征Python将每个逻辑行断成初等的语句组成序列,叫做表征。每个表征都要一致的符合某个逻辑行的子字符串。普通的表征类型是identifiers标识符,keywords关键字,operators运算符,delimiters定界符,以及literals文字。空格可以在表征中自由的使用分开他们。有些空格分隔在逻辑比邻标识符或关键字间是必须的;不然,他们会解析成一个单独的,较长的标识符。例如,printx是一个单独的标识符,写关键字 print后跟着标识符x,你需要插入一些空格(例如, print x)。
标识符一个标识符使用来标识变量,函数,类,模块,或其他对象的名称。一个标识符以字母(A 到 Z 或 a 到 z )或下划线( _ )跟随0或其他字符,下划线,数字(0-9)。Python区分大小写:小写和大写字符是不同的。Punctuation characters标点符号,例如@,%和$不可以作为标识符。普通的Python样式是以大写开始类名称,其他表示服用小写。在开始使用一个单独的下划线暗示了一个强化的私有标识符;如果表示服同时以两个下划线结尾,这个标识符就是一个语言-定义了的特殊名称。标识符_一个单独的下划线在交互直译程序线程中是特殊的:如果有的话,直译程序会交互的将 _ 捆绑于最后一个表达式声明。
关键字Python有28个关键字(在Python 2.3和之后有29个),这些是Python为特殊语法使用保留的标识符。关键字只由小写字组成。你不可以将关键字像规则的标识符一样使用。有些关键字开始简单的声明或复合声明的子句;其他关键字用来作为运算符。Python中的关键字有:
assert
|
elif
|
from
|
lambda
|
return
|
break
|
else
|
global
|
not
|
try
|
continue
|
exec
|
import
|
pass
|
yield
|
运算符Python使用非字母字符和字符组合作为运算符。Python识别以下运算符:
定界符Python使用下面符号或符号组合作为(expressions表达式,lists列表,dictionaries字典,various aspects of statments多种声明,以及string字符串和其他目的)界定符。
period句号(.)也可以出现在浮点和虚数文字。三个句号(...)的序列在slice切中有特殊的含义。表格的后两行列出了大小指定运算符,语句上是界定符但同是也可以指定运算。以后在介绍对象或声明时会讨论多种界定符的语法。
下列字符作为表征有特殊的含义:
' " # \
字符@,$和?,所有的控制字符但除了空格,以及所有的带有ISO code 126以上的字符(i.e.non-ASCII 字符,例如着重字母),永远都不可以作为Python程序的一部分,除了在评注里面或这字符串文字中出现。
文字文字属于数据值可以在程序里直接出现。以下是所有的Python文字:
42 # Integer literal
3.14 # Floating-point literal
1.0J # Imaginary literal
'hello' # String literal
"world" # Another string literal
"""Good
night""" # Triple-quoted string litera
使用文字和界定符,你可以创建其他类型的数据值:
[ 42, 3.14, 'hello' ] # List ( 100, 200, 300 ) # Tuple
{ 'x':42, 'y':3.14 } # Dictionary
声明你可以考虑Python源文件是一个简单和复合声明的序列。不像其他语言,Python没有declarations声明或其他高阶层的语法元素。
简单声明简单声明不包含其他声明,并且躺在一条逻辑行里。同其他语言一样,你会在一条逻辑行中加载大于一个简单声明,使用semicolon分号(;)作为分隔符。然而,每行一条声明是Python通常样式,因为这样所使程序更加可读。
任何表达式可以单独作为一个简单声明。交互直译程序显示输入的表达式声明到提示符(>>>),并且綁定结果到名为_的变量。除了交互线程之外,表达式声明的用处仅仅是呼叫有副作用的函数。
任务作业是一个简单声明,它指定一个值到变量中去。不想其他语言,任务作业在Python里面是一个生命,所以永远都不可以作为表达式的一部分。
复合声明一条复合声明包含了其他生命并且控制他们的执行。一个复合生命有一个或多个子句,排列成相同的缩进。每个子句都有于关键字开始的头部以及带有colon冒号(:)的结尾,紧接着是body(一个或多个声明的序列)。当body包含多重声名时,叫做一个block块。这些声明应该放置于分开的逻辑行,并且在头行后面,而且向头行的右方合同。块决定什么时候缩进返回到子句的头行(或者比那个更向左)。相同的,body可以是一个单独的简单生命,紧跟其后的:在同一逻辑行作为头。body还可以是在同一行的几个简单声明,声明之间是semicolon分号(;),但这并不是一种好的Python样式。