Ŀ¼
跟其他的编程语言是一样的情况
#!/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")
#!/usr/bin/env python # encoding: utf-8 i = 0 my_name = 'zengraoli' while i < len(my_name): print(my_name[i]) i += 1
#!/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.")
文章来源: 4、Python中的控制结构