Python3控制结构与函数
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)来实现。
Python3控制结构与函数的更多相关文章
- python3 的 round 函数的 练习
python3 的 round 函数感觉很别扭,其运算结果与习惯不相符.特记录下来: 代码 ''' python 3的 round 函数 是"四舍六入五成双"的 https://w ...
- Scala学习(二)--- 控制结构和函数
控制结构和函数 摘要: 本篇主要学习在Scala中使用条件表达式.循环和函数,你会看到Scala和其他编程语言之间一个根本性的差异.在Java或C++中,我们把表达式(比如3+4)和语句(比如if语句 ...
- python3内置函数大全(顺序排列)
python3内置函数大全 内置函数 (1)abs(), 绝对值或复数的模 1 print(abs(-6))#>>>>6 (2)all() 接受一个迭代器,如果迭代器的所有 ...
- Scala的控制结构和函数
控制结构和函数 先看以下简单的一个条件表达式的demo object TestConditional { def main(args: Array[String]): Unit = { // scal ...
- Python3.x:函数定义
Python3.x:函数定义 1,函数定义: def 函数名称([参数1,参数2,参数3......]): 执行语句 2,实例一(不带参数和没返回值): def helloWorld(): print ...
- python3内置函数大全
由于面试的时候有时候会问到python的几个基本内置函数,由于记不太清,就比较难受,于是呕心沥血总结了一下python3的基本内置函数 Github源码: https://github. ...
- python3入门之函数
相信大家学习过其他语言,懂得函数的作用.简单的说函数最好的作用就是可以使程序变得懒惰.python作为后起之秀,当然也会拥有函数这个有用的东西: 创建函数 使用def语句即可创建函数,如创建一个用来生 ...
- 2.scala控制结构、函数、异常处理
2.scala控制结构.函数.异常处理---小书匠,在线编辑器,MARKDOWN,Evernote,文件版本 a:focus { outline: thin dotted #333; outline: ...
- Python3内置函数、各数据类型(int/str/list/dict/set/tuple)的内置方法快速一览表
Python3内置函数 https://www.runoob.com/python3/python3-built-in-functions.html int https://www.runoob.co ...
随机推荐
- C# 关于操作datatable的列名和删除某一列的数据
1.获取一个数据集表 DataTable dt = selectDEGS(type, words, KUser); 2.删除某一列 dt.Columns.Remove("TaskID&quo ...
- CCNA毕业测试
要求: 1:不同楼层物理隔离,但逻辑相连 2:相同楼层物理相连,但逻辑隔离 3:主机可以动态获取IP地址 4:不同VLAN间可以进行通信 5:主机最终访问www.baidu.com弹出Congratu ...
- 对 Servlet 的改进--------Struts2 引入
通过上一篇博客:Servlet 的详解 http://www.cnblogs.com/ysocean/p/6912191.html,我们大致知道了 Servlet 的基本用法.但是稍微分析一下 Ser ...
- ORACLE中死锁的知识点总结
死锁的概念 什么是死锁呢? 其实我们生活中也有很多类似死锁的例子. 我先举一个生活中的例子:过年回家,父亲买了一把水弹枪,儿子和侄子争抢着要先玩,谁也不让谁,拆开包装后,一个抢了枪, 一个逮住了子 ...
- Java对字符串进行的操作
本篇总结归纳对字符串或数组进行相关操作问题 数组倒序输出 查找字符串中第一次重复的字符 查找字符串中第一次没有重复的字符 删除字符串中重复的元素 倒序输出问题 第一种:对于数组 public int[ ...
- 基于cookie使用过滤器实现客户每次访问自登陆一次
原创声明:本文为本人原创作品,绝非他处摘取,转载请联系博主 相信大家在各大网站都会遇到,登录时,在登录框出现下次免登陆/一个月免登陆的类似选项,本次博文就是讲解如何实现,在这记录一下,也算是做个备忘录 ...
- Java常用类之【字符串相关类型】
一.字符相关类型 分类: 1.不可变的字符序列: String类 2.可变的字符序列: StringBuilder类--->线程不安全的 执行效率相对较高 StringBuffer类---> ...
- GPUImage的filter 响应处理链 的理解笔记
GPUImage的filter的textures处理链式结构 两个最重要的的地方: 最重要的一个类GPUImageOutput(所有的filter的父类,其他也有继承它的,如GPUImageUIEle ...
- 网页 cookie
定义: 从JavaScript的角度看,cookie 就是一些字符串信息.这些信息存放在客户端的计算机中,用于客户端计算机与服务器之间传递信息. 使用:document.cookie = 'usern ...
- 手机wap网站建设的方法和技巧
随着互联网技术的不断进步,越来越多的运营商对于手机wap网站的建设有了更多的投入,手机wap网站的建设和开发要根据网站的特点和经营范围来进行设计和建设,这样才可以提升手机wap网站建设的效果.现在智能 ...