博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python3控制结构与函数
阅读量:5271 次
发布时间:2019-06-14

本文共 2372 字,大约阅读时间需要 7 分钟。

 

 

1、if语句的另一种写法

       expression1 if boolean_expression else expression2

       boolean_expression为true时使用expression1,否则用expression2。常用于默认值的设定。

2、循环结构

while和for循环末尾都可以再加一句else语句。只要循环正常终止,else语句就会得到执行,但若由于break或返回语句,以及产生异常导致跳出循环,else语句则不会执行。

3、异常处理完全模块

try:    suite1    except exception_group1 as varialble1:   suite2     #as为可选,如果有,variable中则存储了该异常。    except exception_group2 as variabble2    else:    suite3    finally:    suite4

如果try的suite1正常执行完毕则会执行else的内容。如果发生异常则不执行。

finally的suite4无论前边发生什么都会被执行。即使发生发生的异常在except中找不到相匹配的项,也会执行了finally 再终止程序。

4、异常体系常用分支

Exception:

  ArithmeticError

  EnvironmentError:

    IOError

    OSError

  EOFError

  LookupError:

    IndexError

    KeyError

  ValueError

 

       Exception属于BaseException的子类,BaseException属于object的子类。

       异常处理中会由上到下的读取except,如果异常与之匹配,则停止继续向下检索。所以为了使异常反应得更具体,一般将最小的子类放在最前边。

       产生异常:   raise exception(args)

                     raise exception(args) from original_exception

       >自定义异常:

       class exceptionName(baseExceiption): pass

       当在语句中想要在某处产生这个异常时就用raise exceptionName()

       多个异常也可放在一起(用isinstance()函数进行区分):

except (InvalidEntityError,InvalidTagContentError) ar err:       if isinstance(err,InvalidNumericEntityError):              err="invalid numeric entity"       elif isinstance(err,InvalidAlphaEntityError):              err="invalid alphabetic entity"

5、自定义函数

格式:

def functionName(arguments):

  suite

 

       包括:全局函数、局部函数、lambda函数(λ)、方法。

       调用一个函数时必须给定全部参数值(如果函数需要参数的话且未指定默认值),不然会产生一个TypeError异常。

       调用函数时的参数传递不一定严格按照函数定义时的参数顺序,也可以用name=value的方式进行个别参数的指定传递。

       也可以用*做为一个函数的参数,用于表示*位置之后不应该再出现位置参数,否则会产生一个TyepeError。样:def a(a,*,b=1):pass     a(1,2)是错误的调用法,因为它只接受一个位置参数。

       **也可被称为映射拆分操作符,其作用类似于*对拆分序列类型数据。

6、全局范围的变量(global)

当一个函数用到一个变量,此变量却不在函数内部,那么此变量就是全局变量,在调用这个函数时使用这个变量就必须用global进行声明(global xx),不然此变量就会一直是原始的值,而不是你想要的值。

对于存在于函数之内的函数欲使用上一层函数的变量则使用nonlocal来声明。否则同全局变量一样只能使用不能改变。

 

7、lambda函数

       格式 lambda parameter:expression

       parameter是可选的,如果提供,通常以逗号分隔。expression不能包含分支或循环语句,可以包含条件表达式,也不能包含return。因函数本身相当于一个有返回计算表达式结果的匿名函数。如果expression是一个元组,就需要用“()”括起来。

       例:area=lambda b,h:05*b*h  ;调用方法:area(1,2)

       常用于sort表达式中的key(例:elements.sort(key=lambda e:(e[1],e[2]));忽略第一项);

       以及默认字典的默认值设置(例:rstr=collections.defaultdict(lambda:"No message available")     )

8、断言assert:

       格式     assert boolean_expression,optional_exprssion

       如果boolean_expression结果为False,就产生一个AssertionError,如果给了可选的optional_exprssion,就表达出来。在最后运行整下程序不想执行assert语句时就用指令-O (例:python -O promgramname.py)来实现。

转载于:https://www.cnblogs.com/aland-1415/p/6972924.html

你可能感兴趣的文章
微信上传素材返回 '{"errcode":41005,"errmsg":"media data missing"}',php5.6返回
查看>>
div或者p标签单行和多行超出显示省略号
查看>>
Elasticsearch 滚动重启 必读
查看>>
Hadoop基本概念
查看>>
java.util.zip压缩打包文件总结一:压缩文件及文件下面的文件夹
查看>>
浅说 apache setenvif_module模块
查看>>
MySQL--数据插入
查看>>
重新学习python系列(二)? WTF?
查看>>
shell脚本统计文件中单词的个数
查看>>
SPCE061A学习笔记
查看>>
sql 函数
查看>>
hdu 2807 The Shortest Path 矩阵
查看>>
熟悉项目需求,要知道产品增删修改了哪些内容,才会更快更准确的在该项目入手。...
查看>>
JavaScript 变量
查看>>
java实用类
查看>>
smarty模板自定义变量
查看>>
研究称90%的癌症由非健康生活习惯导致
查看>>
命令行启动Win7系统操作部分功能
查看>>
排序sort (一)
查看>>
Parrot虚拟机
查看>>