欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python自学之路第十八步——异常

程序员文章站 2024-03-15 15:37:06
...

常在河边走哪有不湿鞋,就算是大牛也有犯错的时候,先来一个很基本的错误:
Python自学之路第十八步——异常
除数为零时将报错~~
但这画面太美我不敢看~~~优化一下,用try-except处理一下。。
Python自学之路第十八步——异常
是不是美观了不少……


我们把有可能出错的代码放到try中,except接受异常,然后做出响应……
当程序能够正常运行时我们把相应放到else中:
print('手动输入被除数和除数,当初数为零时报异常,输入q退出!')
while True:
    fn=input('被除数为:')
    if fn=='q':
        break
    sn=input('除数为:')  
    try:
        anser=int(fn)/int(sn)
    except ZeroDivisionError:
        print('零不能做除数!')
    else:
        print(anser)
        print('*************************')

效果如下:
Python自学之路第十八步——异常


当处理文件,尤其是多个文件时也可以,上代码:
def count_word(filename):
    '''统计文件中的单词数量'''
    try:
        with open(filename) as fi:
            con=fi.read()
    except FileNotFoundError:
        print('该文件不存在!')
    else:
        words=con.split()
        count=len(words)
        print('文件'+filename+'共有单词'+str(count)+'个~')
        
filenames=['file_test.txt','error.txt','english.txt']
for filename in filenames:
    count_word(filename)

我们把统计单词的代码整合成一个函数,这样可以方便调用~~方法split()可以根据一个字符串创建一个单词列表,即分词~~它是以空格为分隔符进行切割的,我们整了两个文件file_test.txt和english.txt,里面有若干单词,文件error.txt并不存在,我们看看效果:
Python自学之路第十八步——异常
如果将except中的print语句改为pass,则遇到错误时程序将直接跳过,即默不作声地略过,这样也省得堵心。。
使用try-except处理语句的最大好处就是当其中一步出错时还能继续运行,如error.txt文件不存在时若不捕捉错误则会就此停止,不会继续处理english.txt文件。。

上一篇: String.format 的用法

下一篇: