【Python程式設計】使用者註冊資訊v1
阿新 • • 發佈:2018-11-07
#!/usr/bin/env python
# -*- coding:utf-8 -*-
__Author__ = "YanZanG"
product_name = "Memorandum"
# 匯入Python內建庫及第三方庫
from color_me import ColorMe
import os
import pickle
import re
# Welcome歡迎詞.
Welcome = ColorMe(f"Welcome to {product_name} Applets.".center(60, "=")).green()
print(Welcome)
# 獲取當前路徑
File_path = os.getcwd()
os.chdir(File_path)
# re正則表示式
# User_name 必須是中文 密碼必須以字母和數字組合:長度為8位-16位
User_name_re = re.compile(r"[\u4e00-\u9fa5]")
User_pwd_re = re.compile(r"^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$")
# 使用者註冊資訊
class Memo_user(object):
def __init__(self):
self.User_data = ""
self.User_data_tow = {}
def user_input(self):
Count = True
while (Count):
User_name = input("Please enter your name:").strip()
User_pwd = input("Please enter your password:").strip()
try:
if User_name_re.search(User_name) and User_pwd_re.findall(User_pwd):
self.User_data_tow["使用者名稱"] = User_name
self.User_data_tow["密碼"] = User_pwd
self.User_data.append(self.User_data_tow)
print(ColorMe("Detecting username and password successfully!").green())
with open("User_data.pkl", "wb") as f:
pickle.dump(self.User_data, f)
print(ColorMe("Add username password successfully, has been saved to the database....").green())
Count = False
# TODO: User_login
else:
print(ColorMe("User name or password input is illegal, please re-enter").red())
Count = True
except Exception as f:
print(f)
def user_registered(self):
if os.path.exists("User_data.pkl"):
print(ColorMe("Read user database successfully......").green())
with open("User_data.pkl", "rb") as f:
self.User_data = pickle.load(f)
for i in self.User_data:
a = i
for k, v in a.items():
print(f"{k} : {v}")
print(f"使用者 ↑".center(50, "-"))
self.user_input()
else:
print(ColorMe("Failed to read user data, please create user first.......").red())
self.User_data = []
self.user_input()
# TODO:更多功能
'
if __name__ == '__main__':
A = Memo_user()
A.user_registered()
ColorMe:
#!/usr/bin/env Python
#-*- coding:utf-8 -*-
__author__ = 'De8ug'
class ColorMe:
"""
give me color see see...
實際用起來很簡單:
ColorMe('somestr').blue()
"""
def __init__(self, some_str):
self.color_str = some_str
def blue(self):
str_list = ["\033[34;1m", self.color_str, "\033[0m"]
return ''.join(str_list) # "\033[34;1m" + self.color_str + "\033[0m"
def green(self):
str_list = ["\033[32;1m", self.color_str, "\033[0m"]
return ''.join(str_list) # "\033[34;1m" + self.color_str + "\033[0m"
def yellow(self):
str_list = ["\033[33;1m", self.color_str, "\033[0m"]
return ''.join(str_list) # "\033[34;1m" + self.color_str + "\033[0m"
def red(self):
str_list = ["\033[31;1m", self.color_str, "\033[0m"]
return ''.join(str_list) # "\033[34;1m" + self.color_str + "\033[0m"
def main():
ColorMe('somestr').blue()
if __name__ == '__main__':
main()