专栏名称: 爬虫俱乐部
Stata技术控,编程技术咨询,数据讨论与分享,编程和实证培训。
目录
相关文章推荐
重庆校园频道  ·  2025年全国中小学生英语作文征集活动正式启 ... ·  22 小时前  
重庆校园频道  ·  2025年全国中小学生英语作文征集活动正式启 ... ·  22 小时前  
玺承电商观察  ·  从CORE新流量机制到付费投流,多维度教你在 ... ·  23 小时前  
玺承电商观察  ·  从CORE新流量机制到付费投流,多维度教你在 ... ·  23 小时前  
中国能源报  ·  关于举办绿电、绿证、CCER交易培训的通知 ·  昨天  
田俊国讲坛  ·  【2025重磅来袭】业务赋能导师特训营|直面 ... ·  2 天前  
最江阴  ·  最新消息,每人可省500元! ·  3 天前  
51好读  ›  专栏  ›  爬虫俱乐部

Python异常处理之try\/except

爬虫俱乐部  · 公众号  ·  · 2018-06-13 10:48

正文

暑期Stata培训班招生啦!!! 接力线上的网课培训,我们在今夏又开始新一轮的线下培训啦! 8月4日至12日 ,爬虫俱乐部期待与您的相遇!培训具体内容详见推文《 暑期Stata编程技术定制培训班 》。

有问题,不要怕!点击推文底部“ 阅读原文 ”下载爬虫俱乐部用户问题登记表并按要求填写后发送至邮箱 [email protected] ,我们会及时为您解答哟~

喜大普奔~爬虫俱乐部的github主站正式上线了!我们的网站地址是: https://stata-club.github.io ,粉丝们可以通过该网站访问过去的推文哟~

好消息 :爬虫俱乐部即将推出研究助理供需平台,如果您需要招聘研究助理(Research Assistant or Research Associate),可以将您的需求通过我们的公众号发布;如果您想成为一个RA,可以将您的简历发给我们,进入我们的研究助理数据库。帮我们写优质的推文可以提升您被知名教授雇用的胜算呀!

在执行程序过程中,难免会碰到因为某些原因如输入输出导致异常情况发生(如因输入的文件名不存在而导致无法运行相关代码)。如果你未对异常进行处理,程序将会报错停止,并显示一个 traceback 来报告该异常现象;如果你编写了处理该异常的代码,程序将会 继续进行 而不报错。一般情况下,我们都会使用 try/except 来捕捉异常情况的出现。

try/except 语句的完整格式如下所示:

try:
   正常执行的程序,可能存在异常错误导致程序无法顺利运行
except A:
   出现情况A的处理办法
except B:
   出现情况B的处理办法
except:
   出现除了A、B情况的处理办法
else:
   若未出现上述异常,则跳过except转而执行该条程序
finally:
   无论是否发生异常,这条程序都会被执行

说明:

正常执行的程序会在 try 下的代码块中执行,如果在执行过程中发生了异常,就会中断当前的代码块的运行而 跳转 到相对应的异常处理块 except 中执行。如果在正常代码块的执行中没有发生任何异常,那么在执行完该代码块后就会进入 else 代码块。最后无论是否发生了异常,只要我们编写了 finally 语句,上述代码的最后一步总是会执行 finally 下的代码块。另外,对于上面展示的try/except完整格式而言,else和finally都是 可选 非必须 的,我们可以根据自己的需求进行选择。

实例展示

1.打开指定路径下的文档,并显示文档中的内容

e 盘路径下,我们一共有这四个文档,每一个文档中都包含一首古诗。首先我们尝试读取一个 不存在的文档 —— 模板5

filename = 'e:/模板5.txt'
with open(filename) as f:
    contents= f.read()
print(contents)

Python报错结果显示 无法读取不存在的文件 ,出现 FileNotFoundError 异常。

我们修改并完善程序为 手动输入 一个文件名,如果存在则输出文档中的内容,如果不存在则重新输入:

import os
os.chdir('e:/')
name = input('你需要查看的文件名为:')
filename = name+'.txt'
try:
   with open(filename) as f:
        contents= f.read()
except FileNotFoundError:
   print("抱歉,未查找到"+filename+"文件,请检测文件名是否正确。")
else:
   print(contents)

最终我们分别键入“ 模板1 ”和“ 模板5 ”,得到以下两个结果:


2.猜数字的小游戏

你可以随机从[ 1,10 ]中随机挑选数字,直至最后猜中,具体的程序如下:

import random
num=random.randint(1,10)
while True:
   guess = int(input('Enter 1~10:'))
   if guess > num:
       print('你猜大了:',guess)
   elif guess        print('你猜小了:', guess)
   else:
       print('恭喜你猜对了!答案就是',num)
   break

但是如果你输入的不是数字而是字母就会报错:

因此,我们可以引入 try/except 来处理该异常:

import random
num=random.randint(1,10)
while True:
   try:
       guess = int(input('Enter 1~10:'))
   except Exception:
       print('输入值有误,请重新输入[1,10]内的数字')
       continue
   if guess > num:
       print('你猜大了:',guess)
   elif guess        print('你猜小了:', guess)
   else:
       print('恭喜你猜对了!答案就是',num)
   break

最后输出结果为:



注:此推文中的图片及封面(除操作部分的)均来源于网络!如有雷同,纯属巧合!

以上就是今天给大家分享的内容了,说得好就赏个铜板呗!有钱的捧个钱场,有人的捧个人场~。 另外,我们开通了苹果手机打赏通道,只要扫描下方的二维码,就可以打赏啦!

应广大粉丝要求,爬虫俱乐部的推文公众号打赏功能可以开发票啦,累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫。第一批发票已经寄到各位小主的手中,大家快来给小爬虫打赏呀~




文字编辑:赵宇亮

技术总编:刘贝贝

往期推文推荐:

1.爬虫俱乐部新版块--和我们一起学习Python

2.hello,MySQL--Stata连接MySQL数据库

3.hello,MySQL--odbcload读取MySQL数据

4.再爬俱乐部网站,推文目录大放送!

5.用Stata生成二维码—我的心思你来扫

6. Mata中的数据导出至Excel

7. 谈谈图形中坐标设置的技巧

8. 如何输出某个关键词在字符串中的所有位置?

9. 想看什么书?Stata君帮你寻!——爬取中南财大图书馆书目信息







请到「今天看啥」查看全文