用Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的用戶系統(tǒng)
前言
如標(biāo)題所說(shuō),這是一個(gè)非常簡(jiǎn)單的程序,并不涉及任何高深的學(xué)問(wèn),更適合一些剛?cè)胧諴ython的新人研究一下基礎(chǔ)內(nèi)容的用法,此案列對(duì)于有些編程經(jīng)驗(yàn)的人來(lái)講可以說(shuō)是過(guò)于簡(jiǎn)單,甚至是簡(jiǎn)陋。
本文涉及的知識(shí)點(diǎn):列表、字典、用戶輸入、程序輸出。
關(guān)于程序的一些設(shè)計(jì):
相關(guān)的功能:用戶登入,用戶注冊(cè),用戶信息修改

正文
首先我們來(lái)寫程序的大體框架,然后我們?cè)侔凑瘴覀兊男枨笸锩嫣畛淦渌δ堋?/p>
user_name = [] # 聲明一個(gè)列表來(lái)保存下面那個(gè)字典user_name_
user_name_ = {
'name': '',
'password': ''
} # 聲明一個(gè)用來(lái)保存賬號(hào)信息的字典
user_id = -1 # 用戶序列號(hào)
def start(): # 程序開(kāi)始界面
print('----------用戶登入程序----------')
print('| 溫馨提示:用戶名不可以過(guò)長(zhǎng) |')
print('| 密碼請(qǐng)記牢,暫時(shí)不支持找回 |')
print('------------------------------')
user_selection()
def user_selection(): # 用戶選擇需要進(jìn)行的操作
pass # pass用來(lái)占行,防止不寫內(nèi)容報(bào)錯(cuò)
def log_in(): # 用戶登入
pass
def sign_up(): # 用戶注冊(cè)
pass
def check_user_information(): # 用戶信息檢查
pass
def modify_information(): # 修改信息
pass
start() # 調(diào)用程序開(kāi)始界面來(lái)顯示信息接下里我們?cè)趤?lái)完善用戶選擇檢測(cè)、用戶登入、及用戶信息檢查這三個(gè)界面,按照流程來(lái)是先打印界面——>用戶做出選擇——>登入或者注冊(cè);
首先是用戶選擇的代碼
def user_selection(): # 用戶選擇需要進(jìn)行的操作
selection = input('1.登入 2.注冊(cè) (輸入數(shù)字即可,例如1): ')
if selection == '1': # 判斷是否為1
log_in()
elif selection == '2': # 判斷是否為2,或者不是其中的任何選擇
sign_up()
else:
print('您輸入的并不是1或者2,請(qǐng)重新輸入!')
user_selection()用戶選擇為1則調(diào)用log_in()來(lái)繼續(xù)用戶登入行為,為2則是用戶注冊(cè)行為,不為1或2則提示錯(cuò)誤并重新選擇。
接下來(lái)是用戶登入界面的代碼了。
def log_in(): # 用戶登入
username = input('請(qǐng)輸入用戶名: ')
password = input('請(qǐng)輸入密碼: ')
# 首先獲取用戶輸入的用戶名以及密碼,然后傳遞check_user_information(username,password)
check_user_information(username, password)
# 在這里修改了一下用戶信息檢查的代碼,加入了2個(gè)需要傳遞的參數(shù)。然后就是檢查的代碼了
def check_user_information(username_, password_): # 用戶信息檢查,username和password后面的_僅僅為了方便區(qū)分.
global user_id # 引用函數(shù)外的變量
for i in range(len(user_name)): # 遍歷全部的用戶信息
if user_name[i]['name'] == username_ and user_name[i]['password'] == password_: # 如果登入成功
print('登入成功')
user_id = i # 成功獲取用戶序列
break # 結(jié)束循環(huán)
if not user_id == -1: # 通過(guò)user_id來(lái)判斷是否成功登入,如果不等于-1則登入成功 if not 如果不 也可以寫 if user_id != -1
# 登入成功
modify_information(user_id) # 進(jìn)入信息修改界面來(lái)改賬號(hào)或者密碼,傳入user_id方便查找
else:
# 登入失敗
print('賬號(hào)密碼錯(cuò)誤或賬號(hào)不存在。')
user_selection() # 返回用戶選擇
# user_name[i]['name'] 的意思是先獲取 列表user_name[i] 所保存的字典user_name_,然后再查看字典里name的值然后我們來(lái)完成用戶注冊(cè)的代碼
def sign_up(): # 用戶注冊(cè)
username = input('請(qǐng)輸入用戶名: ')
password = input('請(qǐng)輸入密碼: ')
# 首先讓用戶輸入要注冊(cè)的賬號(hào)和密碼
user_name_['name'] = username
user_name_['password'] = password
# 將賬號(hào)密碼先寫入字典再寫入列表
user_name.append(user_name_)
print('注冊(cè)成功,即將返回選擇界面')
user_selection() # 接著再返回用戶選擇最后就是用戶信息修改了,超級(jí)簡(jiǎn)單
def modify_information(user_id_): # 修改信息
global user_id
selection = input('1.修改賬號(hào) 2.修改密碼 3.退出登入 (輸入數(shù)字即可,例如1):')
if selection == '1':
user_name[int(user_id_)]['name'] = input('輸入新的賬號(hào)') # user_id是字符串要int一下
user_id = -1
start() # 返回最開(kāi)始
elif selection == '2':
user_name[int(user_id_)]['password'] = input('輸入新的密碼')
user_id = -1
start()
elif selection == '3':
user_id = -1
start()
else:
print('您輸入的似乎并不是其中的選項(xiàng)請(qǐng)重新輸入')
modify_information(user_id)總結(jié)
非常簡(jiǎn)單,接下來(lái)貼出全部代碼
user_name = [] # 聲明一個(gè)列表來(lái)保存下面那個(gè)字典user_name_
user_name_ = {
'name': '',
'password': ''
} # 聲明一個(gè)用來(lái)保存賬號(hào)信息的字典
user_id = -1 # 用戶序列號(hào)
def start(): # 程序開(kāi)始界面
print('----------用戶登入程序----------')
print('| 溫馨提示:用戶名不可以過(guò)長(zhǎng) |')
print('| 密碼請(qǐng)記牢,暫時(shí)不支持找回 |')
print('------------------------------')
user_selection()
def user_selection(): # 用戶選擇需要進(jìn)行的操作
selection = input('1.登入 2.注冊(cè) (輸入數(shù)字即可,例如1): ')
if selection == '1': # 判斷是否為1
log_in()
elif selection == '2': # 判斷是否為2,或者不是其中的任何選擇
sign_up()
else:
print('您輸入的并不是1或者2,請(qǐng)重新輸入!')
user_selection()
def log_in(): # 用戶登入
username = input('請(qǐng)輸入用戶名: ')
password = input('請(qǐng)輸入密碼: ')
# 首先獲取用戶輸入的用戶名以及密碼,然后傳遞check_user_information(username,password)
check_user_information(username, password)
# 在這里修改了一下用戶信息檢查的代碼,加入了2個(gè)需要傳遞的參數(shù)。
def sign_up(): # 用戶注冊(cè)
username = input('請(qǐng)輸入用戶名: ')
password = input('請(qǐng)輸入密碼: ')
# 首先讓用戶輸入要注冊(cè)的賬號(hào)和密碼
user_name_['name'] = username
user_name_['password'] = password
# 將賬號(hào)密碼先寫入字典再寫入列表
user_name.append(user_name_)
print('注冊(cè)成功,即將返回選擇界面')
user_selection() # 接著再返回用戶選擇
def check_user_information(username_, password_): # 用戶信息檢查,username和password后面的_僅僅為了方便區(qū)分.
global user_id # 引用函數(shù)外的變量
for i in range(len(user_name)): # 遍歷全部的用戶信息
if user_name[i]['name'] == username_ and user_name[i]['password'] == password_: # 如果登入成功
print('登入成功')
user_id = i # 成功獲取用戶序列
break # 結(jié)束循環(huán)
if not user_id == -1: # 通過(guò)user_id來(lái)判斷是否成功登入,如果不等于-1則登入成功 if not 如果不 也可以寫 if user_id != -1
# 登入成功
modify_information(user_id) # 進(jìn)入信息修改界面來(lái)改賬號(hào)或者密碼,傳入user_id方便查找
else:
# 登入失敗
print('賬號(hào)密碼錯(cuò)誤或賬號(hào)不存在。')
user_selection() # 返回用戶選擇
# user_name[i]['name'] 的意思是先獲取 列表user_name[i] 所保存的字典user_name_,然后再查看字典里name的值
def modify_information(user_id_): # 修改信息
global user_id
selection = input('1.修改賬號(hào) 2.修改密碼 3.退出登入 (輸入數(shù)字即可,例如1):')
if selection == '1':
user_name[int(user_id_)]['name'] = input('輸入新的賬號(hào)') # user_id是字符串要int一下
user_id = -1
start() # 返回最開(kāi)始
elif selection == '2':
user_name[int(user_id_)]['password'] = input('輸入新的密碼')
user_id = -1
start()
elif selection == '3':
user_id = -1
start()
else:
print('您輸入的似乎并不是其中的選項(xiàng)請(qǐng)重新輸入')
modify_information(user_id)
start() # 調(diào)用程序開(kāi)始界面來(lái)顯示信息到此這篇關(guān)于用Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的用戶系統(tǒng)的文章就介紹到這了,更多相關(guān)Python用戶系統(tǒng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Gradio機(jī)器學(xué)習(xí)模型快速部署工具應(yīng)用分享
這篇文章主要為大家介紹了Gradio機(jī)器學(xué)習(xí)模型快速部署工具應(yīng)用分享原文翻譯,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
Python的scikit-image模塊實(shí)例講解
在本篇文章里小編給大家整理了一篇關(guān)于Python的scikit-image模塊實(shí)例講解內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。2020-12-12
python 在指定范圍內(nèi)隨機(jī)生成不重復(fù)的n個(gè)數(shù)實(shí)例
今天小編就為大家分享一篇python 在指定范圍內(nèi)隨機(jī)生成不重復(fù)的n個(gè)數(shù)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01
ChatGPT教你用Python實(shí)現(xiàn)BinarySearchTree詳解
這篇文章主要為大家介紹了ChatGPT教你用Python實(shí)現(xiàn)BinarySearchTree詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
使用python matplotlib 畫圖導(dǎo)入到word中如何保證分辨率
這篇文章主要介紹了使用python matplotlib 畫圖導(dǎo)入到word中如何保證分辨率的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04

