python 语句和语法
Python语句集如表所示:
语句 | 角色 | 例子 |
---|---|---|
赋值 | 创建引用值 | a,b,c=’good’,’bad’,’ugly’ |
调用 | 执行函数 | log.write(“spam,ham\n”) |
打印对象 | print ‘The Killer’,joke | |
if/elif/else | 选择动作 | if “python” in text: print text |
for/else | 序列迭代 | for x in mylist: print x |
while/else | 一般循环 | while x>y: print ‘hello’ |
pass | 空占位符 | while True: pass |
break,continue | 循环跳跃 | while True: if not line:break |
try/except/finally | 捕捉异常 | try: action() except: print ‘action error’ |
raise | 触发异常 | raise endSearch,location |
import, from | 创建函数 | def f(a,b,c=1,*d): return a+b+c+d[0] def gen(n): for i in n, yield i*2 |
class | 创建对象 | class subclass(Superclass): staticData=[] |
global | 命名空间 | def function(): global x,y x=’new’ |
del | 删除引用 | del data[k] del data[i:j] del obj.attr del variable |
exec | 执行代码字符串 | exec “import ” + nodName exec code in gdict,ldict |
assert | 调试检查 | assert x>y |
with/as | 环境管理器 | with open(‘data’) as myfile: process(myfile) |
python 语法中增加的特色
在 Python中,语法的特色是增加了冒号(:)操作。在所有的Python的复合语句中,都有相同的一般形式,即在首行以冒号结尾,首行下一行嵌套的代码按缩进的格式书写,如:
Header line:
Nested statement block
冒号是不可或缺的。一旦缺少冒号,则会发生错误,而大多数的编辑器都会很容易就发现这一错误。
Python 语法中可缺少的
与C++/Java等语言相比,在Python中,有些操作是可以缺省的。如:
- 括号语句可选,如if x>y
- 终止行就是终止语句,如:x=1;在Python中可以直接省略分号,写成x=1
- 缩进的结束就是代码块的结束如下代码所示:
if x > y:
x = 1
y = 2
使用缩进代码块方式,可以使代码变得更简单,增进代码的可读性。
python 赋值语句
Python中赋值语句的特性:
- 赋值建立对象引用值
- 变量名在首次赋值时会被创建
- 变量名在引用前必须先赋值
- 存在隐式赋值语句:import、from、def、class、for、函数参数等赋值
对于Python中的变量名是没有类型的,但是引用的变量则具有类型。
Python 打印
在Python中,采用print进行打印,可以具有多种方式进行打印以及重定向打印,如
str= 'adb'
print '%s format string' %str
log = open('log.txt','w')
print >> log,3,4,'Python'
语句的分隔符
在Python中,如果一个语句太长,在单行里比较难放下,则需要考虑多行处理。由于Python是按行进行处理的,故如果一个语句要分行,则需要进行特殊处理。其中可使用的特殊规制如下:
- 如果使用语法括号对,语句就可以横跨数行。如()、{}、[]等括号中,Python允许分隔为多行编写代码
- 如果语句以反斜线结尾,就可以横跨数行
- 三重引号字符串常量可以横跨数行
- 其他规则。
break、continue、pass和循环else
在嵌套语句中才可以使用的关键词break和continue语句。其中语句的意义如下:
break
跳出最近所在的循环(跳过整个循环语句)。
continue
跳到最近所在循环的开头处(来到循环的首行)。
pass
什么事也不做,只是空占位语句。
循环else块
只有当循环正常离开时才会执行(也就是没有碰到break语句)。
如:
while <test1>:
<statements1>
if <test2>:break #退出循环
if <test3>:continue #来到循环的首行
else:
<statement2> #如果不是break跳出,则执行该语句
for 语句
对于Python中的for语句,和其他的语言不太一样,主要是Python中for语句是一款通用的序列迭代器,可以遍历有序的序列对象中的元素。for语句可以用于字符串、列表、元组、其他内置可迭代对象以及我们能够通过类所创建的新对象。对于Python中的for语句,一般的格式如下:
for <target> in <object>: #获取对象中的目标
<statements> #使用对象目标,重复循环
if <test>:break #跳出循环
if <test>:continue #跳到循环首行
else:
<statements> #如果没有使用break跳出循环,则执行该语句
如果想要处理像C语言里的for循环:
for (i=0;i<n;i++)
{
statements
}
则需要使用range函数进行生产列表,进而进行循环如下:
for i in range(0,n)
statements
zip和map
在Python中,zip,map可以用于组合列表、元组等数据。如:
>>>a = [0, 1, 2, 3, 4]
>>>b = [5, 6, 7, 8, 9]
>>>c = [0, 1, 2, 3, 4,5, 6, 7, 8, 9]
>>>zip(a,b)
[(0, 5), (1, 6), (2, 7), (3, 8), (4, 9)]
>>>map(None,a,c)
[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (None, 5), (None, 6), (None, 7), (None, 8), (None, 9)]
获取键值后,可以使用zip进行创建字典,如:
>>> a=['a','b','c']
>>> b=['ant','banana','cat']
>>> D={}
>>> for (k,v) in zip(a,b):D[k]=v
>>> D
{'a': 'ant', 'c': 'cat', 'b': 'banana'}