.Net程序员之Python基础教程学习----函数和异常处理[Fifth Day]
今天主要记录,Python中函数的使用以及异常处理.
一.函数:
1.函数的创建以及调用.
def Add(val1,val2):
return val1+val2;
print Add(,)
2. 定义返回多参数的函数,返回的参数以元组的形式返回,可以通过下表索引来获取单个值,下面是获取两数之差和两数之和的函数. 整体上来说还是不错的,在C#中我们一般都用out来实现,多个参数改变返回,不过那样可读性不好。
def GetSubAndSum(val1,val2):
return val1-val2,val1+val2 print GetSubAndSum(2,3) #Answer:(2,3)
print GetSubAndSum(2,3)[0] #Answer(2)
3. 函数实现多参数. 下面例子实现任意参数的参数和. 通过*可以实现多参数。1个*号转换为元组,2个*号转换为字典,至于3个*号没试过,想想应该没人会川那么复杂的数据呀。
def sumList(*param):
sumNumber=0
for val in param:
sumNumber+=val
return sumNumber
print sumList(1,2,3)
>>6 def showList(*param):
print param showList(1,2,3)
>>(1,2,3)
showList()
>>() def showDic(**param):
print(param) showDic(Name='Frank',Age=23)
>>{'Age': 23, 'Name': 'Frank'}
5. 函数的递归,递归说明白点就是函数内部自己调用自己,下面来看看通过递归来求n!
Note: 当N<1 无值返回,所以为None
def Fun(N):
if(N==1):
return 1
elif(N>1):
return N*Fun(N-1) print Fun(3)
>>6
print Fun(-1)
>>None
二. 函数的异常处理 :
既然有函数,必定有的函数可能会出错,那如何捕获异常呢.Python中使用 try....except.....finally 来实现.
1. 异常的类型: 【请原谅我的偷懒.】,对于实际开发中,个人认为应该是Exception用的多,其实我们更多的不会去关心是什么错,后面这些错误在程序中应该都会去通过代码避免,或者自己去自定义Exception。

2. Try....Except使用.
def Div(val1,val2):
try:
return val1/val2
except ZeroDivisionError:
return 'Error' print Div(1,0)
>>Error
3. 捕获多个异常,并且打印出异常. 通过Exception可以将所有异常捕获
def Div(val1,val2):
try:
return val1/val2
except (ZeroDivisionError,TypeError),E:
return E print Div(1,0)
print Div(1,'') >>integer division or modulo by zero
>>unsupported operand type(s) for /: 'int' and 'str'
4.finally 在异常捕获的用处,不论是否有异常finally的代码段都会执行,一般用途比如在读取文件的时候可以在finally里面关闭文件流,这样就不会导致文件流不关闭,文件崩溃
def Div(val1,val2):
try:
return val1/val2
except (ZeroDivisionError,TypeError),E:
return E
finally:
print("No matter whether there have error,I will Excute") print Div(1,'')
print Div(1,1) >>No matter whether there have error,I will Excute
>>unsupported operand type(s) for /: 'int' and 'str'
>>No matter whether there have error,I will Excute
>>1
5. 问题来了,finally既然一定都要执行,那么一个方法里面如果finally代码块里面有【返回值】,try 里面也有【返回值】,那调用该方法会获取什么数据呢.那就来看下面的代码吧.
Note:都是返回finally的,不清楚为何有这种设计。
def Div(val1,val2):
try:
return val1/val2
except (ZeroDivisionError,TypeError),E:
return E
finally:
return 'I am finally' print Div(1,'')
print Div(1,1) >>I am finally
>>I am finally
三.总结:
本章记录了函数的创建和基本使用。以及异常的使用. 还有很多需要后面继续学习,比如:
1.【Python中如何抛出异常,没找到,.Net里面可以通过throw,毕竟在开发中遇到异常,有时候我们需要进一步封装异常往上层代码抛】
2.【如何自定义异常,是类似于C#的继承Exception类吗?这个还得等后面几天把Python抽象方面的知识学了才知道】
3.【lamba的学习,fitter,map,reduce的学习.后面应该会用专门一个博客来记录学习笔记.】
.Net程序员之Python基础教程学习----函数和异常处理[Fifth Day]的更多相关文章
- .Net程序员之Python基础教程学习----列表和元组 [First Day]
一. 通用序列操作: 其实对于列表,元组 都属于序列化数据,可以通过下表来访问的.下面就来看看序列的基本操作吧. 1.1 索引: 序列中的所有元素的下标是从0开始递增的. 如果索引的长度的是N,那么所 ...
- .Net程序员之Python基础教程学习----判断条件与循环[Fourth Day]
今天学习Python的判断条件与循环操作. 一. 布尔变量: 在学习判断条件之前必须的了解bool变量,在Python中bool变量与C语言比较类似,与.net差别比较大,其中下面集中情况需要 ...
- .Net程序员之Python基础教程学习----字典的使用 [Third Day]
今天学习了字典的使用, 所谓的字典其实就是键值对数据, 一个字典里面有唯一的Key对应一个value,Key是唯一的,Value不唯一. 在.net添加相同的Key会报错,在Python,若出现相 ...
- .Net程序员之Python基础教程学习----字符串的使用 [Second Day]
在The FirstDay 里面学习了列表的元组的使用,今天开始学习字符串的使用.字符串的使用主要要掌握,字符串的格式化(C语言中我们应该都知道,Python和C语言差别不大),字符串的基本 ...
- Python基础教程学习笔记:第一章 基础知识
Python基础教程 第二版 学习笔记 1.python的每一个语句的后面可以添加分号也可以不添加分号:在一行有多条语句的时候,必须使用分号加以区分 2.查看Python版本号,在Dos窗口中输入“p ...
- 【学习笔记】Python基础教程学习笔记
教程视频网盘共享:http://pan.baidu.com/s/1hrTrR5E 03-python基础.if判断 print 输出数据 print("hahahah")----- ...
- Python基础教程学习(四)类的创建与继承
类中可以有方法,类外也可以有函数,其实类就是一种封装, Python中可以自己定义一个函数,一可以把这个函数在类中封装成一个方法, 其中的属性和方法自然就从父类中继承来了, 要想获得多个类的属性和功能 ...
- Python基础教程学习(三)
如何定义类 class ClassName(base_class[es]): "optional documentation string" static_member_decla ...
- Python基础教程学习笔记:第二章 列表和元组
1.序列中元素的索引: 第一个元素索引是0,第二个是1,依次递增 最后一个元素索引是-1,倒数第二个是-2,依次递减 2.序列(Sequence)的种类: 列表(list).元组(tuple).字符串 ...
随机推荐
- C#如何根据配置实现动态窗体
本文主要讲述如何根据UI配置来动态生成控件, 并添加到窗体上来构建UI窗体,当用户在每个控件上完成输入操作后,程序通过遍历控件并用拼接字符串的方式动态生成Insert SQL语句,进而实现了将UI上的 ...
- 使用虚拟按钮(Ghost Buttons)的25个网站
2014年已经过去大半年了,我们看到网页设计领域出现新的设计趋势. 虚拟按钮(Ghost Buttons)是指具备基本的按钮形状的透明按钮,但有细实线的边框.有些虚拟钮是互动的,点击之后按钮可能会成为 ...
- javascript对象继承详解
问题 比如我们有一个"动物"对象的构造函数. function animal() { this.type = '动物'; } 还有一个"猫"对象的构造函数. f ...
- 如何使用代码或脚本启用SharePoint的备用语言
SP的多语言,需要安装语言包,然后手工去sharepoint下启动备用语言,如下图: [网站操作]-[语言设置]: 方法一:采用powershell处理 在很多项目情况下,需要用代码进行备用语言启动. ...
- ArcEngine中合并断开的线要素(根据几何判断)
在上一篇ArcEngine环境下合并断开的线要素(根据属性)随笔中介绍了如何通过shp文件属性表中相同的属性字段进行线要素的合并.今天刚把通过几何条件判断的方式连接断开的线要素的ArcGIS 插件完成 ...
- 如何用RadioButton做一个底部的切换栏
上面的效果是用Radio进行制作的,一般我们做底部的切换栏的时候需要让按钮和文字都有一个选中的状态,然后根据点击不同的按钮触发不同的页面,这里的页面一般都是fragment做的.这里我们不讨论复杂的东 ...
- html框架—多对话框(相同id)处理
一个网站的数据大多数都是异步刷新的,这没什么好说的,然后现在很多前后端框架,大家都知道框架很好用,不用自己写样式,只要利用框架上的语法就能做出漂亮的动态的效果来,而用框架的话大多数的动态效果都是动态生 ...
- 对抽屉效果几大github第三方库的调研
在公司项目新版本方案选择中,对主导航中要使用的抽屉效果进行了调研.主要原因是旧的项目中所用的库ECS评价不是很好.现对当下比较火的几大热门抽屉效果的第三方库进行了调研.代码全部选自github 如果你 ...
- Facebook开源动画库 POP-POPBasicAnimation运用
动画在APP开发过程中还是经常出现,将花几天的时间对Facebook开源动画库 POP进行简单的学习:本文主要针对的是POPBasicAnimation运用:实例源代码已经上传至gitHub,地址:h ...
- 【读书笔记】iOS网络-Cookie
Cookie是HTTP协议在首个版本之后加入的一个重要组件.它向服务器提供了追踪会话状态的能力,同时又无须维持客户端与服务器之间的连接.在浏览器客户端,Cookie值是由服务器通过请求提供的,,然后被 ...