Python学习笔记006_异常_else_with


>>> # try-except语句 >>> >>> # try : >>> # 检测范围 >>> # except Exception[as reason]: >>> # 出现异常(Exception)后的处理代码 >>>
>>> try :
file = open("我是一个你找不到的文件.txt")
print(file.read())
file.close()
# 下面的reason是一个变量,名称可以随意的
except OSError as reason:
print('文件出错啦!\n具体原因是:'+str(reason))
文件出错啦!
具体原因是:[Errno 2] No such file or directory: '我是一个你找不到的文件.txt'
>>>
>>> # try 后面可以跟多个except语句块
>>>
>>> try :
num = 1+'
file = open("我是一个你找不到的文件.txt")
print(file.read())
file.close()
except OSError as reason:
print('文件出错啦!\n具体原因是:'+str(reason))
except TypeError as reason:
print('类型出错!\n具体原因是:'+str(reason))
类型出错!
具体原因是:unsupported operand type(s) for +: 'int' and 'str'
>>>
>>> # 也可以将几个异常一起处理
>>> try :
num = 1+'
file = open("我是一个你找不到的文件.txt")
print(file.read())
file.close()
# 下面的reason是一个变量,名称可以随意的
except (OSError,TypeError )as reason:
print('出错;!\n具体原因是:'+str(reason))
出错;!
具体原因是:unsupported operand type(s) for +: 'int' and 'str'
>>> # 当try语句块中某一行出错时,直接到except块中进行捕获,后面的代码不在被执行
>>> # try后面不根任何异常名称,将会捕获所有的异常
>>>
>>> try :
int('ab')
num = 1+'
file = open("我是一个你找不到的文件.txt")
print(file.read())
file.close()
# 下面的reason是一个变量,名称可以随意的
except (OSError,TypeError )as reason:
print('出错;!\n具体原因是:'+str(reason))
except :
print('出错')
出错
>>>
>>> # try-finally语句
>>> #
>>> # try :
>>> # 检测范围
>>> # except Exception[as reason]:
>>> # 出现异常(Exception)后的处理代码
>>> # finally :
>>> # 无论如何都会执行的代码
>>>
>>> try :
file = open("我是一个你找不到的文件.txt",'w')
print(file.write('我存在了'))
#这里出错,文件还没有关闭,写入的内容就不会到文件中去
num = 1+'
except (OSError,TypeError )as reason:
print('出错;!\n具体原因是:'+str(reason))
finally :
file.close()
4
出错;!
具体原因是:unsupported operand type(s) for +: 'int' and 'str'
>>>
>>> # 手动抛出一个异常 raise
>>> raise
Traceback (most recent call last):
File "<pyshell#67>", line 1, in <module>
raise
RuntimeError: No active exception to reraise
>>> raise ValueError('不能处理的值')
Traceback (most recent call last):
File "<pyshell#68>", line 1, in <module>
raise ValueError('不能处理的值')
ValueError: 不能处理的值
>>>
#丰富的else
>>> #1, 要么怎样,要么不怎样 if else 的用法 不再赘述
>>> #2, 干完了能怎样,干不完别想怎样 与while for搭配使用
>>> #3, 没有问题,那就干吧 与异常处理机制搭配
>>>
>>> # else 只在循环正常完成之后执行,如果是从break中跳出来的就不会被执行
>>>
def showMaxFactor(num) :
'这是一个求最大公约数的函数'
count = num // 2
while count > 1:
if num % count == 0:
print('%d最大公约数是%d' %(num,count))
break
count -= 1
else :
print('%d是素数!' %num)
num = int (input('请输入一个数字:'))
showMaxFactor(num)
============== RESTART: C:/Users/Administrator/Desktop/else.py ============== 请输入一个数字:12 12最大公约数是6 >>> ============== RESTART: C:/Users/Administrator/Desktop/else.py ============== 请输入一个数字:7 7是素数!
>>># try 语句块中没有任何异常才执行else,否则不执行
try :
int (')
except ValueError as reason:
print('出错了:'+str(reason))
else:
print('没有任何异常1')
# Python使用with语句,可以省去关闭文件,with会帮助我们去关闭文件
try:
f = open('data.txt','w')
for each_line in f:
print(each_line)
except OSError as reason:
print('出错啦:'+str(reason))
finally:
f.close()
# 改成with语句
try:
with open('data.txt','w') as file:
for each_line in file:
print(each_line)
except OSError as reason:
print('出错啦:'+str(reason))
Python学习笔记006_异常_else_with的更多相关文章
- python学习笔记5_异常
python学习笔记5_异常 1.什么事异常 Python使用异常对象(exception object) 来表示异常情况.遇到错误会发生异常. 如果异常对象未被处理或被捕捉,程序就会用所谓的回溯(t ...
- Python学习笔记 - day8 - 异常
异常 在程序运行过程中,总会遇到各种各样的错误.有的错误是程序编写有问题造成的,比如本来应该输出整数结果输出了字符串,有的错误是用户输入造成的,比如让用户输入email地址,结果得到一个空字符串,这种 ...
- 【目录】Python学习笔记
目录:Python学习笔记 目标:坚持每天学习,每周一篇博文 1. Python学习笔记 - day1 - 概述及安装 2.Python学习笔记 - day2 - PyCharm的基本使用 3.Pyt ...
- 【python学习笔记】8.异常
[python学习笔记]8.异常 raise Exception: 抛出指定异常 try/except: 捕捉异常 except: 第一个参数是需要捕获的异常类型,可以是多个类型组成元组,第二个参数是 ...
- python学习笔记(六)文件夹遍历,异常处理
python学习笔记(六) 文件夹遍历 1.递归遍历 import os allfile = [] def dirList(path): filelist = os.listdir(path) for ...
- 【Python学习笔记之二】浅谈Python的yield用法
在上篇[Python学习笔记之一]Python关键字及其总结中我提到了yield,本篇文章我将会重点说明yield的用法 在介绍yield前有必要先说明下Python中的迭代器(iterator)和生 ...
- 雨痕 的《Python学习笔记》--附脑图(转)
原文:http://www.pythoner.com/148.html 近日,在某微博上看到有人推荐了 雨痕 的<Python学习笔记>,从github上下载下来看了下,确实很不错. 注意 ...
- Python学习笔记之生成器、迭代器和装饰器
这篇文章主要介绍 Python 中几个常用的高级特性,用好这几个特性可以让自己的代码更加 Pythonnic 哦 1.生成器 什么是生成器呢?简单来说,在 Python 中一边循环一边计算的机制称为 ...
- Python学习笔记之文件处理
1.打开和关闭 要打开文件可以使用函数 open(),它位于自动导入模块 io 中.函数将文件名作为唯一不可缺少的函数,并返回一个文件对象.它还有一个名叫 mode 的参数,用于指定文件模式,其可取值 ...
随机推荐
- react+flux编程实践(一) 基础篇
1. React概览 最初听到React而还未深入了解它时,大多数人可能和我的想法一样:难道又是一个新的MVC/MVVM前端framework?深入了解后发现不是这么一回事,React关注的东西很单纯 ...
- 《CS:APP》二进制炸弹实验(phase_1-3)
<深入理解计算机系统>第三章的bomb lab,拆弹实验:给出一个linux的可执行文件bomb,执行后文件要求分别进行6次输入,每一次输入错误都会导致炸弹爆炸,程序终止.需要通过反汇编来 ...
- collection 模块
关于一些 特殊数据类型的模块 namedtuple顾名思义,一个带有名字的元祖,他也是跟对象有关的一个 from collections import namedtuple phone = named ...
- 【JBoss】数据库连接配置小结(转)
数据库驱动位置: %JBOSS_HOME%\server\default\lib目录下. 数据库配置文件位置:JBOSS_HOME\docs\examples\jca\XXXX-ds.xml < ...
- 通过 PHP 连接China Azure Blob 存储
问题说明 Azure Blob 存储是一种将非结构化数据作为对象/Blob存储在云中的服务.Blob存储可以存储任何类型的文本或二进制数据,例如文档.媒体文件或应用程序安装程序.Blob存储也称为对象 ...
- .net 中常用的正则表达式整理
相信很多伙伴都跟我一样有关于正则表达式的爱和恨,怎么说呢? 因为正则表达式规则繁多且复杂,想一个一个学 全部精通,需要耗费很长时间和精力, 但是我们用的地方并不是很多,所以我觉得这类东西需要做成类似工 ...
- string,char*,int 之间的转化
c++中经常遇到string,char*,int之间的相互转化,今天就来整理一下. 以下是转载并修改的内容: 以下是常用的几种类型互相之间的转换 string 转 int先转换为char*,再使用at ...
- java创建目录与文件
java创建目录与文件: package com.led.file; import java.io.File; import java.io.IOException; public class Fil ...
- java private修饰的类和变量
private主要用来修饰变量和方法,一般不会用来修饰类,除非是内部类. 1.new对象 被private修饰的变量和方法,只能在自己对象内部使用,其他对象即使是new你这个对象也是获取不到被priv ...
- Vuejs 页面的区域化与组件封装
组件的好处 当我用vue写页面的时候,大量的数据页面渲染,引入组件简化主页面的代码量,当代码区域块代码差不多相同时,组件封装会更加简化代码.组件是Vue.js最强大的功能之一. 组件可以扩展HTML元 ...