本項目來源於哈爾濱理工大學測控技術與通信工程學院Python大作業。
完成後開源以供大家一起學習進步。
表格form_man.xlsx初始樣式如下(充當數據庫的作用):
登錄賬號 密碼import pandas as pd
def selector():
print("-------****-------")
print("1,機構管理員")
print("2,客戶")
print("3,游客")
print("-------****-------")
identity_number = input("請選擇你的身份(輸入相應數字!!!)?")
return identity_number
# 本函數實現登錄功能
def Login(identity_number):
# ID_man = pd.DataFrame(columns=('登錄賬號', '密碼'))
outputpath_man = './form_man.xlsx'
outputpath_cli = './form_cli.xlsx'
ID_man = pd.read_excel(outputpath_man)
ID_cli = pd.read_excel(outputpath_cli)
# ID_cli = pd.DataFrame(columns=('登錄賬號', '密碼'))
# print(ID_man)
if identity_number == '1':
flag = 0
print("請輸入登錄賬號和密碼!")
id_man = input("登錄賬號:")
pass_man = input("密碼:")
dic_man = {'登錄賬號': [id_man], '密碼': [pass_man]} # 轉化標稱變量,否則報錯
ID_man1 = pd.DataFrame(dic_man)
# print(num)
# print(list(ID_man['登錄賬號']))
# print(ID_man['登錄賬號']['A02200181'])
if id_man not in list(ID_man['登錄賬號']):
ID_man = pd.concat([ID_man, ID_man1], axis=0)
# ID_man.append([], ignore_index=True)
ID_man.to_excel(outputpath_man, index=False, header=True)
print("登錄成功!")
flag = 1
Printf(flag)
RootMan()
# print(ID_man)
# df.loc[df['gender']=='m','name'] # 選取gender列是m,name列的數據
# df.loc[df['gender']=='M',['name','age']] #選取gender列是m,name和age列的數據
elif str(ID_man.loc[ID_man['登錄賬號'] == id_man, '密碼'][0]) != pass_man:
print("密碼錯誤,請重新選擇並輸入!")
# selector()
else:
print("登錄成功!")
flag = 1
Printf(flag)
RootMan()
elif identity_number == '2':
# ID_cli1=pd.DataFrame(columns=('登錄賬號','密碼'))
judge = input("是否首次登錄(yes or no):")
if judge == "yes":
print("請輸入賬號與密碼進行注冊")
id_cli = input("登錄賬號:")
pass_cli = input("密碼:")
dic_cli = {'登錄賬號': [id_cli], '密碼': [pass_cli]}
ID_cli1 = pd.DataFrame(dic_cli)
ID_cli = pd.concat([ID_cli, ID_cli1], axis=0, ignore_index=True)
ID_cli.to_excel(outputpath_cli, index=False, header=True)
print("登錄成功!")
flag = 1
Printf(flag)
RootCli()
elif judge == 'no':
print("請輸入賬號與密碼")
id_cli = input("登錄賬號:")
pass_cli = input("密碼:")
if id_cli not in list(ID_cli['登錄賬號']):
print("未查詢到您的相關信息!")
print("請注冊後登錄!")
elif str(ID_cli.loc[ID_cli['登錄賬號'] == id_cli, '密碼'][0]) != pass_cli:
print("登錄失敗!密碼錯誤")
else:
print("登陸成功!")
flag = 1
Printf(flag)
RootCli()
elif identity_number == '3':
print("請輸入賬號和密碼進行登錄\n"
"登錄賬號請填寫:youke\n"
"密碼請填寫:123456")
id_tou = input("登錄賬號:")
pass_tou = input("密碼:")
if id_tou == 'youke' and pass_tou == '123456':
print("登錄成功!")
flag = 1
Printf(flag)
RootTou()
else:
print("登陸失敗!")
print("請檢查賬號或密碼是否填寫正確!")
# return flag
def Printf(flag):
if flag == 1:
print("歡迎來到好未來兒童教育集團!")
print("----------------******----------------")
print("公司名稱:好未來兒童教育集團")
# print("\033[1;30m好未來\033[0m")
# print("\033[1;31m好未來\033[0m")
# print("\033[1;32m好未來\033[0m")
print("公司logo:"
"\033[1;33m好未來\033[0m")
# print("\033[1;34m好未來\033[0m")
# print("\033[1;35m好未來\033[0m")
# print("\033[1;36m好未來\033[0m")
# print("\033[1;37m好未來\033[0m")
print("公司地址:四川省成都市溫江區海科路234號")
print("----------------******----------------")
elif flag == 0:
print("請登錄成功後再訪問!")
def RootMan():
print("作為管理員,你有權進行相應的調整\n"
"1,設置新老顧客優惠策略。\n"
"2,對大批量購買課程的用戶進行打折。\n")
rootman_number = input("請輸入相應的數字進行管理:")
if rootman_number == '1':
print('所有老顧客打9折!')
print('新顧客不打折,在成為注冊會員成功後將享受與老顧客一般待遇!')
elif rootman_number == '2':
print("對於購買課程價格在30000元以上用戶打8折處理!")
def RootCli():
sle_form = []
price = 0
while True:
print("作為客戶,你有下列選擇!請輸入相應數字完成相應功能!\n"
"輸入T可以退出該功能!")
print("1,浏覽課程信息")
print("2,選購課程")
print("3,查看訂單信息")
print("4,完成支付功能")
rootcli_number = input("請輸入你的選擇:")
if rootcli_number == 'T':
break
elif rootcli_number == '1':
print("游泳班相關信息:\n"
"班級人數:20-30人\n"
"硬件設施:兩座超大型恆溫游泳館\n"
"師資力量:任課老師均為北京體育大學游泳專業博士\n"
"學費:8000一個月\n")
print("書法班相關信息:\n"
"班級人數:40-50人\n"
"硬件設施:高級狗毛筆,浙江黃金紙\n"
"師資力量:任課老師均為北京大學書法專業博士\n"
"學費:6000一個月\n")
print("舞蹈班相關信息:\n"
"班級人數:10-15人\n"
"硬件設施:成都市中央CBD500平方大型舞蹈場館\n"
"師資力量:任課老師均為中央民族大學,北京師范大學舞蹈專業博士\n"
"學費:10000一個月\n")
elif rootcli_number == '2':
print("------------按T退出選課------------")
while True:
sle = input("請輸入相關課程名稱進行選購:")
if sle != 'T':
sle_form.append(sle)
sle_form = sle_form.copy()
if sle == 'T':
print("選課結束,請付款!")
break
elif rootcli_number == '3':
print("你的訂單信息如下:")
sle_count = pd.DataFrame(sle_form).value_counts()
print(sle_count)
elif rootcli_number == '4':
for i in sle_form:
if i == '游泳課':
price += 8000
elif i == '書法課':
price += 6000
elif i == '舞蹈課':
price += 10000
print("你應當付款{0}元!".format(price))
price_cli = int(input("請付款:"))
if price_cli == price:
print("付款成功!")
else:
print("請重新付款!")
def RootTou():
print("作為游客,你可以浏覽如下信息:")
print("游泳班相關信息:\n"
"班級人數:20-30人\n"
# "硬件設施:兩座超大型恆溫游泳館\n"
# "師資力量:任課老師均為清華大學游泳專業博士\n"
"學費:8000一個月\n")
print("書法班相關信息:\n"
"班級人數:40-50人\n"
# "硬件設施:高級狗毛筆,浙江黃金紙\n"
# "師資力量:任課老師均為北京大學書法專業博士\n"
"學費:6000一個月\n")
print("舞蹈班相關信息:\n"
"班級人數:10-15人\n"
# "硬件設施:成都市中央CBD500平方大型舞蹈場館\n"
# "師資力量:任課老師均為中央民族大學,北京師范大學舞蹈專業博士\n"
"學費:10000一個月\n")
def main():
identity_number = selector()
Login(identity_number)
# Printf(flag)
# RootCli()
main()
我完成的代碼在管理員權限那裡顯得較為粗糙,大家可以進一步修改,以更加完善。