一、注冊(cè)
- 從控制臺(tái)錄入注冊(cè)信息
- 注冊(cè)信息含有3個(gè)字段:用戶名答毫、密碼呛伴、年齡(數(shù)字)
- 每個(gè)字段錄入時(shí)勃痴,要給出提示,并且換行輸入
- 根據(jù)年齡热康,計(jì)算昵稱:
- [0,20)="小奶狗"
- [20,30)="男神"
- [30,)=“油膩大叔”
- 計(jì)算注冊(cè)時(shí)間沛申,格式化成:yyyy-MM-dd HH:mi:ss
- 將注冊(cè)信息持久化到文件
- 文件名:users.data
- 持久化字段:用戶名、密碼姐军、年齡铁材、昵稱、注冊(cè)時(shí)間
- 字段分隔符:“,”
- 以追加的方式寫入文件奕锌,不能覆蓋
- 中文編碼:utf-8
- 每個(gè)用戶占一行
- 關(guān)鍵步驟著觉,控制臺(tái)打印日志
- 一次能連續(xù)注冊(cè)3個(gè)用戶
實(shí)例代碼
for i in range(3):
name = input("請(qǐng)輸入用戶名:")
pwd = input("請(qǐng)輸入密碼:")
age = int(input("請(qǐng)輸入年齡:"))
nickname = ''
if age < 20:
nickname = '小奶狗'
elif age in range(20, 30):
nickname = '男神'
else:
nickname = '油膩大叔'
print('姓名:' + name)
print('密碼:' + pwd)
print('年齡:' + str(age))
print("昵稱:" + nickname)
with open("users.data", 'a', encoding='utf-8') as f:
f.write(name + "," + pwd + "," + str(age) + "," + nickname + "\n")
二、登錄
- 從文件加載用戶列表
- 文件名:users.data
- 按行讀取惊暴,一行代表一個(gè)用戶
- 按“,”進(jìn)行字符串拆分饼丘,將一行解析成用戶字段列表
- 將所有用戶存到一個(gè)用戶集列表
- 控制臺(tái)登錄
- 提示輸入用戶名
- 提示輸入密碼
- 判讀登錄用戶是否已注冊(cè)
- 逐條對(duì)比注冊(cè)用戶信息
- 用戶名和密碼都匹配,則算登錄成功
- 發(fā)現(xiàn)登錄成功后辽话,結(jié)束后續(xù)循環(huán)
- 若對(duì)比完所有注冊(cè)用戶都沒匹配成功肄鸽,則提示登錄失敗
- 給3次試錯(cuò)機(jī)會(huì)
- 有3次登錄機(jī)會(huì)
- 每次機(jī)會(huì)若成功卫病,則結(jié)束登錄
- 每次機(jī)會(huì)若失敗,則提示失敗典徘,并顯示剩余機(jī)會(huì)次數(shù)
登錄源代碼
三忽肛、擴(kuò)展知識(shí)點(diǎn)
1、open() 函數(shù)
1.1 參考資料:
https://www.runoob.com/python3/python3-func-open.html
1.2 語法:
open(file, mode='r', , encoding='utf-8')
- file: 必需烂斋,文件路徑(相對(duì)或者絕對(duì)路徑)
- mode: 可選屹逛,文件打開模式
- encoding: 一般使用utf8
1.3 mode 參數(shù):
模式 | 描述 |
---|---|
r | 以只讀方式打開文件,這是默認(rèn)模式 |
w | 打開一個(gè)文件只用于寫入汛骂。存在罕模,覆蓋。不存在帘瞭,自動(dòng)新建 |
a | 打開一個(gè)文件用于追加淑掌。存在,追加蝶念。不存在抛腕,自動(dòng)新建 |
+ | w+:寫和讀;a+:追加和讀 |
2媒殉、time.strftime的參數(shù)
strftime(format[, tuple]) -> string
將指定的struct_time(默認(rèn)為當(dāng)前時(shí)間)担敌,根據(jù)指定的格式化字符串輸出
python中時(shí)間日期格式化符號(hào):
%y 兩位數(shù)的年份表示(00-99)
%Y 四位數(shù)的年份表示(000-9999)
%m 月份(01-12)
%d 月內(nèi)中的一天(0-31)
%H 24小時(shí)制小時(shí)數(shù)(0-23)
%I 12小時(shí)制小時(shí)數(shù)(01-12)
%M 分鐘數(shù)(00=59)
%S 秒(00-59)
%a 本地簡化星期名稱
%A 本地完整星期名稱
%b 本地簡化的月份名稱
%B 本地完整的月份名稱
%c 本地相應(yīng)的日期表示和時(shí)間表示
%j 年內(nèi)的一天(001-366)
%p 本地A.M.或P.M.的等價(jià)符
%U 一年中的星期數(shù)(00-53)星期天為星期的開始
%w 星期(0-6),星期天為星期的開始
%W 一年中的星期數(shù)(00-53)星期一為星期的開始
%x 本地相應(yīng)的日期表示
%X 本地相應(yīng)的時(shí)間表示
%Z 當(dāng)前時(shí)區(qū)的名稱
%% %號(hào)本身