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 的参数,用于指定文件模式,其可取值 ...
随机推荐
- R的数据图形
R支持4种图形类型: base graphics, grid graphics, lattice graphics, ggplot2. Base graphics是R的默认图形系统. 一. 基本图 ...
- 一点点刚学不久的JS
1 js中的变量和输入输出 {使用js的三种方式} 1 在html标签中直接内嵌js(并不提倡使用): <button onclick="alert('小婊砸你真点啊!')&quo ...
- Google 以图搜图 - 相似图片搜索原理 - Java实现 (转)
前阵子在阮一峰的博客上看到了这篇<相似图片搜索原理>博客,就有一种冲动要将这些原理实现出来了. Google "相似图片搜索":你可以用一张图片,搜索互联网上所有与它相 ...
- RoutePrefix和Route 路由前缀
使用应用到某个控制器中所有操作的路由前缀来批注该控制器. web api /// <summary> ////// </summary> [RoutePrefix(" ...
- postman也可以使用F12功能
背景: 做过接口测试的话,大多数都知道或使用过postman工具,使用postman的时候,有时候希望也可以像chrome一样使用F12功能,这样方便观察一些数据,尤其是当你使用了postman的变量 ...
- 【VMware Workstation】NAT映射虚拟机所在网络
配置虚拟网络编辑器 配置网络映射关系
- /bin,/sbin,/usr/sbin,/usr/bin 目录
这些目录都是存放命令的,首先区别下/sbin和/bin: 从命令功能来看,/sbin 下的命令属于基本的系统命令,如shutdown,reboot,用于启动系统,修复系统,/bin下存放一些普通的基本 ...
- 线性代数-矩阵-【3】矩阵加减 C和C++实现
点击这里可以跳转至 [1]矩阵汇总:http://www.cnblogs.com/HongYi-Liang/p/7287369.html [2]矩阵生成:http://www.cnblogs.com/ ...
- 标准的Java编码规范手册
编码规范体现出一个开发者的基本素质,良好的编码规范可以提高团队编码的效率,避免很多不必要的问题.今天分享一个标准的Java编码规范给大家,希望对于大家今后的开发工作带来帮助. 编码规范的意义 ...
- chrome开发工具指南(十三)
模拟传感器:地理定位与加速度计 由于大多数桌面设备都没有 GPS 芯片和加速度计,所以测试它们比较困难.Chrome DevTools 的 Sensors 模拟窗格可以通过模拟常见的移动设备传感器来降 ...