目录

条件分支

跟其他的编程语言是一样的情况

#!/usr/bin/env python
# encoding: utf-8

my_name = 'zengraoli'
if len(my_name > 0):
    print("len is > 0")
elif len(my_name == 0):
    print("len is == 0")
else:
    print("len is < 0")

循环

while循环

#!/usr/bin/env python
# encoding: utf-8

i = 0
my_name = 'zengraoli'
while i < len(my_name):
    print(my_name[i])
    i += 1

for循环

#!/usr/bin/env python
# encoding: utf-8

i = 0
my_name = 'zengraoli'
for i in range(len(my_name)):#range的作用是得到一个最大范围,步长为1
print(my_name[i])

*range()目前只能是产生一个范围内的整数数组,不支持float

如果需要用到float步长,则需要使用到numpy模块的arange()

#!/usr/bin/env python
# encoding: utf-8

import numpy as np

for i in np.arange(0, 1, 0.1):
    print(i)

异常处理

异常捕获

通用的捕获所以的error(缺点是没有办法知道是哪一个类型的异常)

my_dict = { 'id' : 3 }
try:
    print(my_dict['id3'])
except Exception:
    print("error") #'id3'
finally:
print("end.")
或者
i = 1
try:
    i / 0
except Exception:
    print("error") #division by zero
finally:
print("end.")

捕获指定的异常,其他异常也能处理

my_dict = { 'id' : 3 }
try:
    print(my_dict['id3'])
except KeyError:
    print("KeyError.")
except Exception:
    print("error")  # division by zero
finally:
print("end.")

通常finally可以做一些“善后”工作,比如关闭文件等

产生异常

rasie可以产生制定的异常,可以抛出系统已知的异常,也可以抛出自定义的异常

#!/usr/bin/env python
# encoding: utf-8

try:
    raise AttributeError
except ZeroDivisionError:
    print("ZeroDivisionError.")
except KeyError:
    print("KeyError.")
except Exception:
    print("error")  # division by zero
finally:
    print("end.")

自定义异常

自定义的异常是自定义的数据类型(class)
基类应该是Exception类或继承自Exception类

#!/usr/bin/env python
# encoding: utf-8

class InvalidEntityError(Exception) : pass
class InvalidNumericEntityError(InvalidEntityError) : pass

try:
    raise InvalidNumericEntityError
except InvalidNumericEntityError:
    print("InvalidNumericEntityError")
except Exception:
    print("error")
finally:
    print("end.")

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐