暑期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
最后输出结果为: