概述 :
2、关于Python字符串
新增功能:限制密码设置次数(while);循环终止(break)
新增功能:保存设置的密码及其对应强度到文件中
2、文件的操作
(1). 打开文件:建立文件与程序的关联 open(filename,mode)
filename:文件名(包括路径);mode:打开模式
(2). 操作文件:写入、读取等
(3).关闭文件
"""
v1.0:根据输入密码,判定密码强度
v2.0新增:限制密码设置次数(while);循环终止(break)
v3.0新增:保存设置的密码及其对应强度到文件中
"""
def check_num_exist(password):
# 判断是否存在数字
has_number = False
for n in password:
# isnumeric()检测字符串是否只由数字组成
if n.isnumeric():
has_number = True
break
return has_number
def check_letter_exist(password):
# 判断是否存在字母
has_letter = False
for l in password:
# isalpha()检测字符串是否只由字母组成
if l.isalpha():
has_letter = True
# 终止整个循环
break
return has_letter
def main():
"""
主函数
"""
try_times = 5
while try_times >= 1:
password = input("请输入密码: ")
strength_level = 0
if len(password) >= 8:
strength_level += 1
else:
print("密码长度不足八位!")
if check_letter_exist(password):
strength_level += 1
else:
print("密码中应包含字母!")
if check_num_exist(password):
strength_level += 1
else:
print("密码中应包含数字!")
f = open("password_3.0", 'a')
f.write("密码:{},强度:{}\n".format(password, strength_level))
f.close()
if strength_level == 3:
print("恭喜,密码强度合格!")
break
else:
print("抱歉!密码强度不合格!")
try_times -= 1
if __name__ == '__main__':
main()
def main():
"""
主函数
"""
# 打开文件
f = open('password_1.0.txt', 'r')
# 1、read
# content = f.read()
# f.close()
# print(content)
# 2、readline
# line1 = f.readline()
# line2 = f.readline()
# 3、readlines
for line in f.readlines():
print('read:{}'.format(line))
f.close()
if __name__ == '__main__':
main()
结果:
1、关于类
class ClassName
__int__(self)构造函数:初始化对象的各属性
self 代表类的实例
2、面向对象编程的特点
(1)封装
(2)继承
(3)多态
"""
根据输入密码,判定密码强度
5.0:定义一个password 工具类
6.0:定义一个文件工具类
"""
class PasswordTool:
# 密码工具
def __init__(self, password):
# 类的属性
self.password = password
self.strength_level = 0
# 类的方法
def process_password(self):
# 规则1:判断是否大于八位
if len(self.password) >= 8:
self.strength_level += 1
else:
print("密码长度不足八位!")
# 规则2:判断是否存在字符
if self.check_letter_exist():
self.strength_level += 1
else:
print("密码中应包含字母!")
# 规则3:判断是否存在数字
if self.check_num_exist():
self.strength_level += 1
else:
print("密码中应包含数字!")
def check_num_exist(self):
# 判断是否存在数字
has_number = False
for n in self.password:
if n.isnumeric():
has_number = True
break
return has_number
def check_letter_exist(self):
# 判断是否存在字母
has_letter = False
for l in self.password:
if l.isalpha():
has_letter = True
break
return has_letter
class FileTool:
"""
文件类工具
"""
def __init__(self, filepath):
self.filepath = filepath
def write_to_file(self, line):
# 打开文件
f = open(self.filepath, 'a')
# 写文件
f.write(line)
#关闭文件
f.close()
def read_from_file(self):
f = open(self.filepath, 'r')
# 读取文件内容
lines = f.readlines()
f.close()
return lines
def main():
"""
主函数
"""
try_times = 5
filepath = 'password_6.0.txt'
# 实例化文件工具类
file_tool = FileTool(filepath)
while try_times >= 1:
password = input("请输入密码: ")
# 实例化密码工具对象
password_tool = PasswordTool(password)
password_tool.process_password()
line = "密码:{},强度:{}\n".format(password, password_tool.strength_level)
# 写文件
file_tool.write_to_file(line)
if password_tool.strength_level == 3:
print("恭喜,密码强度合格!")
break
else:
print("抱歉!密码强度不合格!")
try_times -= 1
# 读文件
lines = file_tool.read_from_file()
print(lines)
if __name__ == '__main__':
main()