利用python进行数据分析(七)
3 函数
3.2.7 错误和异常处理
python使用被称为异常的特殊对象来管理程序执行期间发生的错误。也就是当我们编写的程序出现错误时返回的traceback
,它提示给我们代码哪个地方出现了那种异常,如果我们不对此进行处理,程序则会终止。
异常是使用try-except
代码块处理的,try-except
代码块让python执行指定的操作,同时告诉python发生异常时怎么办。因此,当使用了try-except
代码块时,即便出现了异常,程序也将继续执行。
做一个简单的例子,我们在python中执行5/0:
>>>print(5/0)
Traceback (most recent call last):
File "<input>", line 1, in <module>
ZeroDivisionError: division by zero
可以看到,python告诉我们这是一个ZeroDivisionError: division by zero
异常,因此无法执行这个程序。下面我们使用try-except
代码块来告诉python出现这种错误时该如何:
>>>try:
print(5/0)
except ZeroDivisionError:
print("不可以除以0")
不可以除以0
我们将导致错误的代码行print(5/0)放在了一个try代码块中,如果try代码块中的代码运行起来没有问题,那么python将跳过except
代码块;如果try代码块中的代码运行出现了异常,那么python便查找except
代码块并运行其中的代码;当然,我们可以不在except
中指定异常类型:
>>>try:
print(5/0)
except :
print("不可以除以0")
不可以除以0
如果我们希望程序出现异常时“一声不吭”,即不提供任何反馈,只需要在except
代码块中使用pass
语句,这样的话,程序“看起来”总是没有错误的。
>>>try:
print(5/0)
except :
pass
那么当try代码块中的代码执行成功时,如果我们需要程序继续执行,此时需要将后续的代码放进else
代码块中:
>>>try:
answer = int(first_number) / int(second_number)
except ZeroDivisionError:
print("不可以除以0!")
else:
print(answer)
>>>
请输入第一个数字:5
请输入第二个数字:2
2.5
还有一种情况,我们希望有一些代码在任何时候都可以执行,即哪怕出现了异常也一样执行,这时候需要使用finally
代码块:
>>>try:
answer = int(first_number) / int(second_number)
except ZeroDivisionError:
print("不可以除以0!")
else:
print(answer)
finally:
print("本次计算结束!")
>>>
请输入第一个数字:5
请输入第二个数字:2
2.5
本次计算结束!
>>>
请输入第一个数字:5
请输入第二个数字:0
不可以除以0!
本次计算结束!
最后再来总结一下try-except-else-finally
代码块的工作原理:
python尝试执行tyr
代码块中的代码,只有可能引发异常的代码才需要放进try
语句中。
而except
代码块告诉python,如果try代码块中的代码运行发生了异常该怎么办。
有时候,有一些仅在try
代码块执行成功时才需要运行的代码,这些代码要放在else
代码块中。
最后,无论try
代码中的代码块执行是否成功,都希望可以执行的代码放进finally
代码块中,比如对文件进行操作后执行文件关闭。
微生物基因组------挖掘微生物基因组序列中的信息
1,有效的基因自动识别可以用隐马尔可夫模型
(hidden Markov model, HMM)完成,也可用内插式马尔可夫模型
,如基因定位(Gene Locater)和内插式马可夫模型(Interpolated Markov Model)(Glimmer)这样的软件完成,并将计算机程序自动化与人工处理相结合来确定基因生物意义的类别和功能。
2,Blast和FASTA可在序列数据库中搜寻和比较蛋白同源簇,包括HMM,Pfam,COG。
3,在多数情况下,首轮的注释和人工处理尚不能解决代谢途径的所有步骤,但是通过预设的HMM模型,或者与其他物种相似代谢途径的序列做比较和搜寻未知物种的同源序列往往可以填补代谢途径中的空白。
4,基因组完成注释后,还有大量的ORF被作为保守假定蛋白
(conserved hypothetical protein)(与其他物种有同源性)和假定蛋白
(hypothetical protein)(该物种特有),对其中的具有生物学作用又不确定在细胞中功能的ORF研究是十分必要的。
本文地址:https://blog.csdn.net/liuninghua521/article/details/107268043
推荐阅读
-
python数据分析与可视化(python数据分析项目报告)
-
利用python和百度地图API实现数据地图标注的方法
-
Python用pandas和matplotlib分析1949-2016年中国各省市历年GDP数据
-
Hive与Oracle之间利用Sqoop进行数据的导入导出时遇到的问题及解决方法
-
python数据分析与可视化(python数据分析项目报告)
-
分析Python编程时利用wxPython来支持多线程的方法
-
Python使用Pickle模块进行数据保存和读取的讲解
-
Python数据持久化shelve模块用法分析
-
python flask框架实现传数据到js的方法分析
-
Python数据分析Pandas