前言
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】微信公众号!