《Python:从入门到实践》学习打卡14-异常后续

异常

try-except代码块

程序运行有时会出现一些错误,python都会创建一个异常对象,显示一个traceback,一方面traceback带有一定的复杂性,有些用户难以读懂,另一方面,一些不怀好意的用户会利用识破traceback中的一些细节进而对程序发起破坏,因此对于出现异常情况,我们应该在程序中显示一个我们编写的友好的错误提示消息,这里最基本的为try-except代码块

将要测试的代码放进try下,将可能出现的错误以及提示信息放进except模块中

try:
    print(5/0)
except ZeroDivisionError:
    print('you can\'t divide by zero')

else代码块

将可能发生错误的代码块放进try-except代码块中,将不会发生错误的代码放进else代码块中

print('麻溜儿的给我两个数字,我练一练除法运算')
while True:
    first_number = input('\n第一个:')
    if first_number == 'q':
        break
    second_number = input('\n第二个:')
    try:
        answer = int(first_number) / int(second_number)
    except ZeroDivisionError:
        print('竟然用0当分母,这是看不起我熊二吗?!')
    else:
        print(answer)

处理FileFoundError异常

常见的文件处理中要查找的文件可能在其他地方也可能不存在,对此可以使用上述三个代码块的结合来处理异常对于多个文件的处理十分友好,不存在的文件直接跳过转而处理下一个文件,当将except代码块中的内容改为pass时,直接不会显示不存在的文件,只会将已经存在的文件的信息打印出来

def txt_words(filename):
    try:
        with open(filename) as file_object:
            word = file_object.read()
    except FileNotFoundError:
        print(filename + ' not exist')
    else:
        num = word.split()
        number = len(num)
        print(number)
filename = ['reason.txt','help.txt','programming.txt','guest.txt']
for file in filename:
    txt_words(file)

课后习题

10-7加法运算

while True:
        num_1 = input('input first number:')
        if num_1 == '':
            break
        num_2 = input('input second number:')
        if num_2 == '':
            break
        try:
            add = int(num_1) + int(num_2)
        except ValueError: # TypeError做不出来,用ValueError
            print('输入数字不会吗?!')
        else:
            print(add)

10-8猫和狗

catname = 'cats.txt'
with open(catname,'w') as file_object1:
    file_object1.write('kathy\n')
    file_object1.write('handy\n')
    file_object1.write('kai\n')

try:
    with open(catname) as f_obj:
        contents = f_obj.read()
except FileNotFoundError:
    print('亲,文件不在这个文件夹哦')
else:
    print(contents)
dogname = 'dog.txt'

try:
    with open(dogname) as f_obj1:
        contents1 = f_obj1.read()
except FileNotFoundError:
    print('亲,文件不在这个文件夹哦')
else:
    print(contents1)

10-9沉默的猫和狗

只需将excepe下的代码改为pass即可

10-10常见单词

filename = 'Alice Adventures in Wonderland.txt'
with open(filename) as f_obj:
    contents = f_obj.read()
nums = contents.split() # 分成一个列表
i = 0
for num in nums:
	if num.lower == 'the' # 判断
    i += 1
print(i) # 1777
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值