python笔记-day12-异常捕获(注册、登录)

本文介绍了Python中数据持久化的概念及其应用,通过一个实例展示了如何利用文件进行数据存储和更新。接着,详细阐述了一个登录注册系统的实现过程,包括用户选择、账号密码的输入与验证。最后,探讨了异常捕获的概念,提供了两种异常处理的语法示例,确保程序在遇到错误时能够继续执行。
摘要由CSDN通过智能技术生成

前言
python语法学习,留给需要的人,懂得都懂!!

# coding=utf8
# @time:2022/4/21 15:04
# Author 浩宇

# 一、数据持久化的应用
# 1.数据持久化的应用
'''''''''
1)需要持久化的数据要通过一个文件来保存
2)需要这个被持久化的数据的时候,不直接给值,而是从文件中去读这个数据
3)如果被持久化的数据发生了改变,需要把最新的值在从新写入这个文件中
'''''''''

'''''''''
# 举例:统计代码执行次数?
# num = 0    # 上一次执行时的次数
with  open('resource/count.txt','rt',encoding='utf-8') as f:
    num = int(f.read())
num += 1
with open('resource/count.txt','wt',encoding='utf-8') as f:
    f.write(str(num))
print(num)
'''''''''

# 二、登录注册系统
# 1.展示选项界面
# 2.给出选择
# 3.根据选择实现对应功能
'''''''''
额外代码:
# resource/page文件内容:
==========================

   **欢迎来到XX管理系统**

       @ 1.登    录
       @ 1.注    册
       @ 1.退    出

===========================

# filemanager/filemanager.py内容
# 定义一个读文件函数
def read_file(file_url:str):
    with open(file_url,'rt',encoding='utf-8') as f:
        return f.read()

def write_file(file_url:str,date:str,mode='w'):
    with open(file_url,mode,encoding='utf8') as f:
        f.write(date)
        
# resource/users.py内容


'''''''''
# _______________________________________


'''''''''
# 正式代码!!!!!!!!!!!!!!!!!!!!!
import filemanager.filemanager  # 调用读取文件内容包模块
def show_main_page():
    # 1)直接调用page.txt文件里面的内容
    # with open('resource/page.txt','rt',encoding='utf-8') as f:
    #     page = f.read()
    # print(page)
    #2)将文件读取封装成函数模块(包),直接调用
    page = filemanager.filemanager.read_file('resource\page.txt')
    while True:
        # 打印页面
        print(page)
        # 给出选择
        value=int(input('请选择1~3:'))
        # 根据选择做不通的事情
        if value == 1:
            print('登录')
            login()
        elif value == 2:
            print('注册')
            register()
        elif value == 3:
            print('退出')
            return
        else:
            print('其他情况')

# 注 册功能模块
def register():
    # 1.输入账号和密码
    user_name = input('请输入账号:')
    password = input('请输入密码:')
    # 2.判断账号是否可以注册
    # 1)先获取之前已经注册过的所有账号
    all_user = eval(filemanager.filemanager.read_file('resource/users.txt'))
    # 2)看当前输入的账号是否已经在注册过的账号里面
    if user_name in all_user:
        print('该账号已经注册过')
        return
    # 3.注册
    # {} -> {user:pw}
    all_user[user_name] = password
    filemanager.filemanager.write_file('resource/users.txt',str(all_user))
    print('恭喜你!!!!注册成功!')


# 登录功能模块
def login():
    # 1.输入账号和密码
    user_name = input('请输入账号:')
    password = input('请输入密码:')
    # 2.判断登录是否成功

    # 0)获取之前已经注册过的账号和对应的密码
    users = eval(filemanager.filemanager.read_file('resource/users.txt'))
    # 1)判断输入的账号是否是已经注册过的账号
    if user_name not in users:
        print('该账号未注册,请先注册账号')
        return
    # 2)判断输入的密码是否和注册时的密码一样
    if users[user_name] != password:
        print('密码错误')
        return
    print('登录成功')


if __name__=='__main__':

    show_main_page()
'''''''''


# 三、异常捕获
# 1.异常
# 程序出错又叫程序出现异常;如果在执行程序的过程中出现异常,那么这个程序会在出现异常的地方结束。
'''''''''
print('123')
list1 = [1,2,3]
print(list1[4])    # 报错
print('321')
'''''''''

# 2.异常捕获
# 异常捕获就是让程序再出现异常的时候不崩溃,不报错,可以继续执行;
# 什么时候捕获异常:明明知道某段代码可能会出现错误,但是又没有办法或者必要去修改这段代码来避免异常的时候,就可以使用异常捕获。
'''''''''
1)语法一:(捕获所有类型的异常)
try:
    代码段1(需要捕获异常的代码段)
except:
    代码段2(出现异常才会执行的代码段)
其他语句......

执行过程:先执行代码段1,如果没有出现异常不执行代码段2,直接执行后面(try)的语句;
        如果出现异常,程序不崩溃,马上执行代码段2,执行完才执行其他语句
# 举例
try:
    age = int(input('请输入年龄:'))
except:
    print('输入的年龄有误')

print('继续打开游戏')

2)语法二:()
try:
    代码段1(需要捕获异常的代码段)
except 异常类型:
    代码段2(出现指定的异常类型才会执行)

#  举例
try:
    print(int('abc'))
except ValueError:
    print('出现异常')

print('继续打开游戏')

3)语法三:()
try:
    代码段1(需要捕获异常的代码段)
except (异常类型1,异常类型2,.....):
    代码段2(出现指定的异常类型才会执行)

'''''''''


try:
    print(int('abc'))
except ValueError:
    print('出现异常')

print('继续打开游戏')

更多安全分享,请关注【安全info】微信公众号!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流浪法师12

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值