python try...except....else...finally处理异常
2017-11-25 16:12
645 查看
python异常处理机制中使用try…except…来进行异常处理,基本格式如下:
举例1:
输入3,0,结果提示说错误,除数为零!同时“朕的睫毛能撑伞”并没有执行,因为发生错误语句中断。
如果输入的两个都不为零的数,比如3和4,但中间不是用逗号而用空格隔开,,结果也打印print语句:
Traceback (most recent call last):
File “D:/Python/note/test.py”, line 1, in
如果我们想要提醒客户可能的输入错误,并将最后的结果打印出来,则可以用try….except …else…finally语句
结果如下:
举例2
给一个txt文本用try…except…判断文本是否存在,如果不存在则给出信息,存在则计算文本有多少单词
结果如下:
另外,可以通过pass直接跳过出错的提示,并执行下一步
如将上面的列子中msg = sorry….那一栏直接改为pass,即:
结果如下:
举例3
判断文本是否存在,存在则将文本打印出来,否则给出错误提示
结果如下:
举例4;
输入两个数字,用try…except…判断是否是字符,如果是字符则提示输入有误,最后将两个数字相加(如果没有输入n或者q则循环一直保持下去)
try: <body> except<ErrorTypel>: <handler1> except<ErrorType2> ...
举例1:
num1,num2=eval(input('Enter two numbers,separated by a comma')) #输入两个数,用逗号隔开 result=num1/num2 print('朕的睫毛能撑伞')
输入3,0,结果提示说错误,除数为零!同时“朕的睫毛能撑伞”并没有执行,因为发生错误语句中断。
Enter two numbers,separated by a comma3,0 Traceback (most recent call last): File "D:/Python/note/test.py", line 2, in <module> result=num1/num2 ZeroDivisionError: division by zero
如果输入的两个都不为零的数,比如3和4,但中间不是用逗号而用空格隔开,,结果也打印print语句:
Traceback (most recent call last):
File “D:/Python/note/test.py”, line 1, in
num1,num2=eval(input('Enter two numbers,separated by a comma')) #输入两个数,用逗号隔开 File "<string>", line 1 3 4 ^ SyntaxError: unexpected EOF while parsing
如果我们想要提醒客户可能的输入错误,并将最后的结果打印出来,则可以用try….except …else…finally语句
try: num1,num2=eval(input('Enter two numbers,separated by a comma')) #输入两个数,用逗号隔开 result=num1/num2 except ZeroDivisionError: print('分母不能为零') except SyntaxError: print('请在两个数之间用逗号隔开') except: #注意冒号一定要在英文格式下输入 print('检查是否输入错误') else: #如果语法格式等都正确则进行else语句,注意冒号一定要在英文格式下输入 print('No exceptions, the result is>> ',result)#没有异议,结果为: finally: #无论输入是否正确,都要执行finally下的语句 print('朕的睫毛能撑伞')
结果如下:
Enter two numbers,separated by a comma3,0 分母不能为零 朕的睫毛能撑伞 >>> ====================== RESTART: D:/Python/note/test.py ====================== Enter two numbers,separated by a comma3 4 请在两个数之间用逗号隔开 朕的睫毛能撑伞 >>> ====================== RESTART: D:/Python/note/test.py ====================== Enter two numbers,separated by a comma3,4 No exceptions, the result is>> 0.75 朕的睫毛能撑伞
举例2
给一个txt文本用try…except…判断文本是否存在,如果不存在则给出信息,存在则计算文本有多少单词
def count_words(filename): try: with open(filename) as file: contents = file.read() except FileNotFoundError: msg = 'Sorry, the file '+filename+' does not exist' print(msg) else: words = contents.split() n_words = len(words) print(n_words) filenames = ['alice.txt','pi_digits.txt','hh.txt','little_women.txt','moby_dick.txt','siddhartha.txt'] for filename in filenames: count_words(filename)
结果如下:
29461 3 Sorry, the file hh.txt does not exist 189079 215136 42172 >>>
另外,可以通过pass直接跳过出错的提示,并执行下一步
如将上面的列子中msg = sorry….那一栏直接改为pass,即:
def count_words(filename): try: with open(filename) as file: contents = file.read() except FileNotFoundError: pass else: words = contents.split() n_words = len(words) print(n_words) filenames = ['alice.txt','pi_digits.txt','hh.txt','little_women.txt','moby_dick.txt','siddhartha.txt'] for filename in filenames: count_words(filename)
结果如下:
29461 3 189079 215136 42172 >>>
举例3
判断文本是否存在,存在则将文本打印出来,否则给出错误提示
def cats_dogs(filename): print('Reading file:'+filename) try: with open(filename) as f: contents = f.read() except FileNotFoundError: print('Sorry,I can not find the file '+filename) else: print(contents) filenames = ['cats.txt','dogs.txt','fish.txt'] for filename in filenames: cats_dogs(filename) print('\n')
结果如下:
Reading file:cats.txt cats henry 小花狗 小白 Reading file:dogs.txt dogs shubao wenjuhe bi Reading file:fish.txt Sorry,I can not find the file fish.txt >>>
举例4;
输入两个数字,用try…except…判断是否是字符,如果是字符则提示输入有误,最后将两个数字相加(如果没有输入n或者q则循环一直保持下去)
def main(): print("Enter 'q' to quit\n") while True: try: c047 x = input('Pleast enter a number>>>') if (x == 'q'): break x = float(x) y = input('Pleast enter another number>>>') if (y == 'q'): break y = float(y) except ValueError: print('Please enter a number, not letter') else: sum = x+y print('The sum of these number is '+str(sum)) dicision = input('Do you want to continue?y/n>>>') if (dicision == 'n')or (dicision=='q'): break main()
相关文章推荐
- Python中的异常处理: try-except-else-finally
- python中的异常处理:try...except...else...finally语句
- python 异常处理-try-except-else-finally
- python异常处理try,except,else,finally,raise
- python异常处理try,except,else,finally,raise
- Python学习笔记之错误处理(关键词:错误处理、异常机制、try、except、else、finally、raise)
- Python 入门笔记 异常(try-except-else-finally)
- Python异常处理try...except...finally raise assert
- Python异常处理try...except...finally raise assert
- python 异常错误 try except else finally
- Python异常捕捉try except else finally有return时执行顺序探究
- Python中异常处理简单示例(try,except,finally)
- python 学习笔记——try,except,else,finally
- python基础知识三——try与except处理异常语句
- 11、python中的try/except/else/finally语句
- (Python)异常处理try...except、raise
- python try except, 异常处理
- python异常图解:try、raise、except、else、finally块用法简要说明
- Python 异常处理 (try 和 except)
- Python文件异常try/except/finally