Python小练:(五:异常处理)

Posted super-treasure

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python小练:(五:异常处理)相关的知识,希望对你有一定的参考价值。

  

# 1、实现一个文件复制器函数,通过给函数传入一个路径,复制该路径下面所有的文件(目录不用复制)到当前目录,
# 要求:如果传路径不存在,不能报错

准备复制的目录:下面有两个目录和三个文本文件,我们这次复制的就是这三个文本文件。(附文本文件内容)
我们要把【操作的目录】下的文本文件复制到【Python_异常捕获】目录下

技术图片

 

 

 技术图片

 

 

 技术图片

 

 

 技术图片

 

 

 


代码:

技术图片

 

 

 

运行结果:

技术图片

 

 

 

技术图片

 

 

 技术图片

 

 

 

 

 

 

 

 

# 2、改善上节课扩展作业的注册程序,
# 打开文件的读取数据的时候,如果文件不存在会报错,
# 请通过try-except来捕获这个错误,进行处理,让注册程序可以继续运行。
执行代码(可直接执行的):
def registered(file):
try: # 读取文件内容时校验是否存在该文件
with open(file,‘r‘,encoding=‘utf-8‘) as fb:
user_info = eval(fb.read())
except FileNotFoundError as FN: # 如果不存在该文件则 创建文件,然后进行注册流程
print("---------------------文件不存在,尝试新建文件---------------------")
with open(file,‘w‘,encoding=‘utf-8‘) as fb1: # 新建一个文件,写入内容,无内容会报错
fb1.write("[]")
with open(file,‘r‘,encoding=‘utf-8‘) as fb2: # 然后再读取出来
user_info = eval(fb2.read())
user_name = [] # 用于存放读取出的用户名
for i in user_info: # 变量读取出的数据
user_name.append(i[‘user‘]) # 将读取到的用户名添加到user_name,用于判断是否已注册
print("---------------------创建文件成功---------------------")
while True:
username = input("请输入你的用户名:")
if username in user_name:
print("该用户名已被注册,请重新输入!")
else:
while True:
pwd1 = input("请输入你的密码:")
pwd2 = input("请再次输入密码:")
if pwd2 != pwd1:
print("两次密码输入不一致,请重新输入密码!")
else:
print("注册成功!")
user_info.append({"user": username, "pwd": pwd2}) # 将新注册的用户名和密码谈价到读取出的user_info中
with open(file, ‘w‘, encoding=‘utf-8‘) as fb: # 覆盖写入全部数据
fb.write(str(user_info))
break
break
print(FN) # 打印出报错信息
else: # 如果判断存在该文件,则直接进行注册流程
print("---------------------文件已存在,正在进入注册流程---------------------")
user_name = []
for i in user_info:
user_name.append(i[‘user‘])
while True:
username = input("请输入你的用户名:")
if username in user_name:
print("该用户名已被注册,请重新输入!")
else:
while True:
pwd1 = input("请输入你的密码:")
pwd2 = input("请再次输入密码:")
if pwd2 != pwd1:
print("两次密码输入不一致,请重新输入密码!")
else:
print("注册成功!")
user_info.append({"user":username,"pwd":pwd2})
with open(file, ‘w‘, encoding=‘utf-8‘) as fb:
fb.write(str(user_info))
break
break
finally: # 无论执行的是 except 代码块还是 else 代码块,都会执行的代码
print(">>>>>>全场最佳<<<<<<")
registered(‘user_info.txt‘)





3、石头剪刀布游戏,用户输入时,如果输入非数字会引发异常,请通过异常捕获来处理这个问题

执行代码:

技术图片

 

 

运行结果:

技术图片

以上是关于Python小练:(五:异常处理)的主要内容,如果未能解决你的问题,请参考以下文章

异常和TCP通讯

Python中的异常类型及处理方式

Python异常处理知识点汇总,五分钟就能学会

python小练0001

python小练0010

Python小练