手记

python 流程控制

Python 用冒号: 作为程序块标记关键字。
注意:每个用冒号':'标记的程序块内的代码必须有相同的缩进

if/elif/else 判断语句
[root@SN28 opt]# cat test.py
#!/usr/bin/env python
# -- coding:utf-8 --

if name =="main":
print "Hello"
print "World"
[root@SN28 opt]# ./test.py
Hello
World

Python中可以使用pass语句来定义作用域,但不做任何操作
# -- coding:utf-8 --

if name =="main":
pass
技巧 : pass用于需要写代码,但实际什么也不做的场合

判断语句3种
if expression1:
block_for_True

if expression1:
block_for_True
else:
block_for_False

if expression1:
block_for_expression1
elif  expression2:
block_for_expression2
....
elif   expression3:
block_for_expression3
else:
block_for_False

实例:
#!/usr/bin/env python
# -- coding:utf-8 --
import sys

param=None
if len(sys.argv) > 1:
param=int(sys.argv[1])
if param is None:
print "Alert"
print "please input a number."
elif param < -10:
print 'too small'
elif param > 10:
print 'too big'
else:
print "so good"
注意: None   可以”=“赋值None,在条件判断中 用 is  None
sys.argv 是一个系统List变量,sys.argv[0]为程序名,从第二个(索引1)开始的其他元素为字符串类型的控制台输入参数。

循环语句
1.
while  expression:
repeat_block
2.
for  element in iteralbe:
repeat_block

  1. break    continue
    实例:列表pop()动态删除元素,len()动态判断列表元素个数
    #!/usr/bin/env python
    # -- coding:utf-8 --

fruits=['apple','banana','orange','egg']
while len(fruits)>0:
print "pop element out",fruits.pop()

[root@SN28 opt]# ./test.py
pop element out egg
pop element out orange
pop element out banana
pop element out apple
[root@SN28 opt]#

#!/usr/bin/env python
# -- coding:utf8 --
import random
while True:
x=random.randint(1,6)
print (x)
if x==6:break
注释:True:用于死循环。 break 退出循环

列表
#!/usr/bin/env python
# -- coding:utf-8 --
myList=['Englis','chinese','Japanese','German','France']

for element in myList:
print "current language is ",element
[root@SN28 opt]# ./test.py
current language is  Englis
current language is  chinese
current language is  Japanese
current language is  German
current language is  France
-----------等同以下效果-------------------
#!/usr/bin/env python
# -- coding:utf-8 --
myList=['Englis','chinese','Japanese','German','France']
i=0
for element in myList:
print "current language is ",i,myList[i]
i=i+1

#!/usr/bin/env python
# -- coding:utf-8 --
myList=['Englis','chinese','Japanese','German','France']
for i,element in enumerate(myList):
print "current language is ",i,myList[i]

#!/usr/bin/env python
# -- coding:utf-8 --
def pick(x):
myList=['Englis','chinese','Japanese','German','France']
return myList[x]
alist=[0,1,2,3,4]
choices=map(pick,alist)
for choice in choices:
print choice
解释:
map(执行用的函数,容器变量)
此函数会自动把每一个在容器变量中的元素都读去出来,放到执行用函数中当作参数,在把返回值合并到一个容器变量中。
map函数中设置pick和alist,它把alist中的每一个数值都放入pick中执行,在搜集pick所返回来的每一个值,最后都放到choices容器变量中

实例
#!/usr/bin/env python
# -- coding:utf8 --
alist=range(1,9)
y=map(lambda x:x3,alist)
for i,element in enumerate(y,1):
print "{}
3 ={}".format(i,element)
[root@localhost opt]# ./test.py
13 =3
2
3 =6
33 =9
4
3 =12
53 =15
6
3 =18
73 =21
8
3 =24

迭代器  enumerate   map   filter

例外处理
在处理数据时,经常遇到例外,使程序产生错误信息并突然中断程序执行。把例外都拦截下来,加以处理,就是所谓的例外处理

#!/usr/bin/env python
# -- coding:utf8 --

while True:
try:
age=int(input("Please input age:"))
break
except:
print "please enter a number"
if age < 15:
print 'you are too yong'
凡是在try之内的语句只要有任何异常,程序控制流程就会自动跑到except之下的语句在程序中处理例外的情况。

处理不同种类的例外
[root@localhost opt]# cat test.py
#!/usr/bin/env python
# -- coding:utf8 --

import os,sys

try:
os.remove('filename')
except Exception as e:
print(e)


e_type,e_value,e_tb=sys.exc_info()print("种类:{}\n消息:{}\n信息:{}".format(e_type,e_value,e_tb))

[root@localhost opt]# ./test.py
[Errno 2] No such file or directory: 'filename'
种类:<type 'exceptions.OSError'>
消息:[Errno 2] No such file or directory: 'filename'
信息:<traceback object at 0x7f9d99c6fb00>

说明:需要导入os,sys
先通过Exception 来捕捉所有的例外,并把例外事件以e当作是记录的对象,使用print(e)把例外的信息打印出来。

0人推荐
随时随地看视频
慕课网APP