一、异常处理
1、异常的概念
如果python解释器遇到一个错误,会停止程序的执行,并且提示一些错误信息
2、捕获异常
在程序开发中,如果对某些代码的执行不能确定是否正确,可以增加try来捕获异常
try:
num = int(input('enter a number:'))
except Exception as result:
print('未知错误%s'%result)
try:
num = int(input('number'))
result = 8/num
print(result)
# except ValueError:#值错误
# print('请输入正确的整数')
# except ZeroDivisionError:#0错误
# print('除0错误')
except Exception as result:#接受所有类型错误
print('未知错误')
else:#没异常时执行的代码
print('正常执行')
finally:#不管有没有异常都执行的代码
print('执行完成,但是不保证正确')
3、异常的传递
def demo1():
return int(input('请输入一个整数'))
def demo2():
return demo1()
try:
print(demo2())
except ValueError:
print('请输入正确的整数')
except Exception as result:
print('未知错误%s'%result)
4、抛出异常
程序停止执行并提示错误信息 这个动作,我们称之为抛出(raise)异常。
除了代码出错抛出异常,还可以主动抛出异常
def input_password():
pwd = input('请输入密码')
if len(pwd)>=8:
return pwd
elif pwd.isalnum():
ex = Exception('请输入纯数字')
else:
ex = Exception('密码长度不够')
raise ex
try:
user_pwd=input_password()
print(user_pwd)
except Exception as result:
print('发现错误:%s'%result)
二、文件操作
1、文件的概念
文件就是存储在某种 长期储存设备(硬盘,U盘,光盘…)上的一段数据
2、文件的基本操作
(1)打开文件
f=open('a.txt','r')
e=open('b.txt','w')
while True:
text=f.readline()
if not text:
break
else:
e.write(text)
f.close()
e.close()
(2)读、写文件
'''文件复制'''
f = open('a.txt', 'r')#打开a文件,只读
e = open('复件.txt', 'w')#打开b文件,只写
while True:
text = f.readline()#小文件全部读用read,大文件一行行读用readline
if not text:
break
else:
e.write(text)
f.close()
e.close()
(3)关闭文件
f.close()
3、文件/文件夹的常用操作
(1)rename 重命名
(2)remove 删除文件
import os
# os.rename('a.txt','hahaha.txt')#重命名
os.remove('hahaha.txt' )#删除
4、文本文件的编码方式
f = open('a.txt','r+')
f.write('i am a girl')
f.close()
#下方这三行注释后,下方是空,不注释则显示写入的内容
f = open('a.txt','r')
print(f.read())
f.close()
重点内容复习题
➢ 以下试题中的代码都不想看到报错信息
➢ 编写一个计算减法的方法,当第一个数小于第二个数时,抛出“被减数不能小于减数”的异
常,如果正常,输出差,不管有没有报错,都输出“该方法运行结束”
try:
a = int(input('a='))
b = int(input('b='))
if a<b:
ex = Exception('被减数不能小于减数')
raise ex
except Exception as ex:
print(ex)
else:
print(a-b)
finally:
print('该方法运行结束')
➢ 九九乘法表输出,按照乘法表的格式打印输出九九乘法表,并将打印的结果存到当前目录下
table.txt
# 先写出九九乘法表代码
# for i in range(1,10):
# for k in range(1,i+1):
# print('%s*%s=%s'%(k,i,k*i),end=' ')
# print('\n')
# def func(filename):
f = open('table.txt','w')
a = ''
for i in range(1,10):
for k in range(1, i + 1):
# print('%s*%s=%s' % (k, i, k * i), end=' ')
a+='%s*%s=%s '%(k,i,k*i)
a+='\n'
f.write(a)
f.close()