python員工管理系統(基礎版)
各位小夥伴們大家好,最近自學python已經差不多把基礎學完了,現在運用這些基礎知識寫了一個簡單版本的員工管理系統
因為在大學裡我是學過java的,所以,當有了一定的基礎和薰陶外,真心覺得python比java要簡單的多,而且學起來特快,業務
邏輯沒那麼複雜,理解起來更好理解,接下里就慢慢給大家講講思路:
(尤其是初學者,不要只顧著敲,要多想想業務邏輯,思路才是最重要的)
先放幾張圖,給大家看看執行效果,再慢慢跟大家層層剖析
看到這些圖片,是不是覺得挺簡單的,確實,只要掌握了基礎,自然這些是有把握的敲出來的
此次這個員工管理系統大致的功能就是 增刪改查,就是我們俗稱的curd,只是這些都是假資料,並沒有連線資料庫Mysql的那種
第一部分:
1.1選單欄的展示
這個選單欄99%的同學都可以敲得出來,就好比1+1=2那樣簡單,但是這裡有個小注意的地方,為了程式碼的美觀性和避免冗長,一般
都是封裝在一個函式裡,把它獨立成塊,你可以就放在同一個檔案裡,也可以另外新建一個python檔案,匯入並呼叫即可
=
我就是建立了兩個資料夾,把他單獨寫在另外一個資料夾中,但是一定要記得匯入import
1.2如何迴圈並且選擇操作
第一行的while True 時起著迴圈的作用
while True: employee_tools.show_menu() action_str = input("請輸入您的操作:") if action_str == "1": # 1.新增員工資訊 employee_tools.add_info() elif action_str == "2": # 2.修改員工資訊 employee_tools.update_info() elif action_str == "3": # 3.刪除員工資訊 employee_tools.delete_info() elif action_str == "4": # 4.顯示所有員工資訊 employee_tools.show_all_info() elif action_str == "5": # 5.退出系統 print("歡迎您再次使用員工管理系統!!!") break else: # 輸入其他任意數字 print("您輸入的有誤,請重新輸入:")
第二部分:增刪查改的功能實現(儘量別看程式碼,多看思路,邏輯思維才是最重要的!!!)
1.新增員工 實現的步驟:
1.輸入員工的工號、姓名、性別、工資等等
1.1判斷員工編號是否存在,如果存在則拒絕新增,提示“編號已存在,不能重複新增”
1.2如果不重複,則繼續接下來的操作
2.把這些資訊儲存在一個字典裡(鍵值對)
2.1員工工號作為鍵,剩下的屬性(姓名、性別、工資)作為值,
這才是最重要的,因為id是唯一的,後面的修改、刪除都是以id為突破口,這點一定要重視
2.2類似: '1001' {'name':xxx, 'sex':xxx, 'salary':xxx}
3.提示新增成功
def add_info(): """新增員工資訊""" print("新增員工===>") employ_id = input("請輸入要新增員工的工號:") # 先找到所有的字典的鍵,再將這些鍵轉化為列表的形式 all_id = list(employee_dict.keys()) if employ_id in all_id: print("員工工號已存在,不能重複新增!!!") return employ_name = input("請輸入要新增員工的姓名:") employ_sex = input("請輸入要新增員工的性別:") employ_salary = input("請輸入要新增員工的工資:") # 把這些資訊儲存在一個字典裡 info_dict = {"name": employ_name, "sex": employ_sex, "salary": employ_salary} # 再放在大字典裡,怎麼放,根據id號相對應 employee_dict[employ_id] = info_dict print("工號為 %s 的員工資訊新增成功!!!" % employ_id) # 這裡只是起到列印觀察的作用,可註釋掉下面這一行 # 說明僅僅還是放在字典裡面,畢竟輸出是字典形式,怎麼顯示那是第四個功能該做的事 # print(employee_dict) # {'1001': {'name': '張三', 'sex': '男', 'salary': '5000'}}
2.修改員工 實現的步驟:
1.拿到要修改員工的工號
1.1如果工號不存在,則提示錯誤資訊,終止函式執行,返回
1.2如果存在,則修改對應的資訊
1.2.1 顯示原來的資訊再修改
2.因為並不是所有的資訊都需要修改,萬一不需要修改的怎麼辦?如何簡化使用操作?
2.1判斷修改時輸入的是不是惟恐,為空就保持不變,不為空則說明修改了
def update_info(): """修改員工資訊""" print("修改員工===>") employ_id = input("請輸入你要修改的員工的工號") all_id = list(employee_dict.keys()) if employ_id not in all_id: print("該員工工號不存在,不能進行修改!!!") return new_name = input("姓名是:%s 修改後的姓名:" % employee_dict[employ_id]['name']) new_sex = input("性別是:%s 修改後的性別:" % employee_dict[employ_id]['sex']) new_salary = input("工資是:%s 修改後的工資:" % employee_dict[employ_id]['salary']) # 因為並不是所有的資訊都需要修改,萬一不需要修改的怎麼辦?如何簡化使用操作? if new_name != "": employee_dict[employ_id]['name'] = new_name if new_sex != "": employee_dict[employ_id]['sex'] = new_sex if new_salary != "": employee_dict[employ_id]['salary'] = new_salary print("工號為 %s 的員工資訊修改成功!!!" % employ_id)
3.刪除員工
# 實現步驟:1.輸入要刪除員工的工號
# 2.判斷工號是否存在,不存在就給出提示資訊,終止函式執行
# 3.如果存在,則直接刪除
def delete_info(): """刪除員工資訊""" print("刪除員工===>") employ_id = input("請輸入你要刪除的員工的工號") all_id = list(employee_dict.keys()) if employ_id not in all_id: print("該員工工號不存在,不能進行刪除!!!") return else: # 直接刪除這個字典 del employee_dict[employ_id] print("工號為 %s 的員工資訊刪除成功!!!" % employ_id)
4.顯示所有員工資訊
# 實現步驟:1.判斷員工是否存在,如果不存在則提示返回
# 1.1怎麼判斷?當列表長度為0時,則說明不存在
# 2.如果存在,就打印表頭
# 3.列印分割線
# 4.遍歷員工資訊,依次輸出字典資訊
def show_all_info(): """顯示員工資訊""" print("顯示所有員工資訊===>") # 判斷員工是否存在 if len(list(employee_dict.keys())) == 0: print("當前沒有任何的員工資訊,請先選擇操作 1,新增員工!!!") # return 下方的程式碼不會被執行 return # 打印表頭 print("-" * 40) for people in ["工號", "姓名", "性別", "工資"]: print(people, end="\t\t") # 列印分割線 # 增加換行 print("") print("-" * 40) # 遍歷員工資訊,依次輸出字典資訊 # 這個items方法是把字典轉換成列表的方法,須特別注意 for jober in employee_dict.items(): print("%s\t\t%s\t\t%s\t\t\t%s" % (jober[0], jober[1]['name'], jober[1]['sex'], jober[1]['salary'])) print("-" * 40)
以上就是增刪改查四個部分的功能實現,思路都寫的非常詳細,希望初學者們能重視思路的重要性
反思幾個問題:
①為什麼哪裡都有這段?
employ_id = input("請輸入你要(刪除、修改、新增)的員工的工號")
all_id = list(employee_dict.keys())
if employ_id not in all_id:
print("該員工工號不存在,不能進行(修改、刪除、新增)!!!")
return
前面我就提到過,id此時是唯一能提供識別的
還有,為什麼哪段都寫呢,因為每一個函式都是獨立的,定義在函式內部的,你在另外一個函式不能直接拿來用,涉及到區域性變數和全域性變數的知識
②在專門定義函式的最上面,不要忘記這行程式碼,這是大字典,在寫第一個功能前,就必須用到,放在外面第一行,其他功能的實現也會用到
提示:在這個tools檔案中,第一行需要加一行程式碼:
# 儲存所有的員工資訊,空資料時
employee_dict = {}
③有的同學會問,我可以在一個python檔案中,實現這些所有功能嗎?
當然可以,因為咱們這隻有四個主要功能,數量基數小,放在一個檔案中寫是絕對可以的,那作為技術一般的小編我為什麼又要分開寫呢?
因為,企業的開發肯定要實現的功能多,放在不同的檔案中利於專案後期的版本修改和維護,新增或者修改某個功能都會方便很多,這麼說吧,
在後期維護中,程式碼能不動的儘量別動,如果你把所有的東西都放在一個檔案中,那改起來如果不小心,牽一髮而動全身,後悔莫及
④有沒有什麼值得推薦的自學python的網站呢?
接下來,小編我就把自己覺得質量還可以的教學視訊連結發在這裡:自己用心慢慢看哦(其實B站資源很豐富的)
https://www.bilibili.com/video/av14184325/?spm_id_from=333.788.videocard.1
如果你覺得看視訊太長,太耗費時間,可以去菜鳥教程上面看文件,(有的地方有點繞,建議最好還是看視訊)
https://www.runoob.com/python3/python3-tutorial.html
最後的最後,我把這個簡易版的員工管理系統程式碼全搬出來,小夥伴們有需要的可以直接複製,你只需要建立兩個檔案就行
1.employee_main.py檔案
import employee_tools while True: employee_tools.show_menu() action_str = input("請輸入您的操作:") if action_str == "1": # 1.新增員工資訊 employee_tools.add_info() elif action_str == "2": # 2.修改員工資訊 employee_tools.update_info() elif action_str == "3": # 3.刪除員工資訊 employee_tools.delete_info() elif action_str == "4": # 4.顯示所有員工資訊 employee_tools.show_all_info() elif action_str == "5": # 5.退出系統 print("歡迎您再次使用員工管理系統!!!") break else: # 輸入其他任意數字 print("您輸入的有誤,請重新輸入:")
2.employee_tools.py檔案
# 儲存所有的員工資訊,空資料時 # employee_dict = {} # 這是原本就有固定資料時的字典 employee_dict = {'1001': {'name': '張三', 'sex': '男', 'salary': '5000'}, '1002': {'name': '李四', 'sex': '男', 'salary': '7000'}, '1003': {'name': '小紅', 'sex': '女', 'salary': '9000'}, } def show_menu(): """進入選單頁面""" print("*" * 11+"員工管理系統 V_1.0"+"*" * 11) # print("員工管理系統 V1.0") print("1、新增員工資訊") print("2、修改員工資訊") print("3、刪除員工資訊") print("4、顯示所有員工資訊") print("5、退出系統") print("*" * 40) def add_info(): """新增員工資訊""" # 實現步驟:1.輸入員工的工號、姓名、性別、工資等等 # 1.1判斷員工編號是否存在,如果存在則拒絕新增,提示“編號已存在,不能重複新增” # 1.2如果不重複,則繼續接下來的操作 # 2.把這些資訊儲存在一個字典裡 # 2.1員工工號作為鍵,剩下的屬性(姓名、性別、工資)作為值 # 2.2類似: '1001' {'name':xxx, 'sex':xxx, 'salary':xxx} # 3.提示新增成功 print("新增員工===>") employ_id = input("請輸入要新增員工的工號:") # 先找到所有的字典的鍵,再將這些鍵轉化為列表的形式 all_id = list(employee_dict.keys()) if employ_id in all_id: print("員工工號已存在,不能重複新增!!!") return employ_name = input("請輸入要新增員工的姓名:") employ_sex = input("請輸入要新增員工的性別:") employ_salary = input("請輸入要新增員工的工資:") # 把這些資訊儲存在一個字典裡 info_dict = {"name": employ_name, "sex": employ_sex, "salary": employ_salary} # 再放在大字典裡,怎麼放,根據id號相對應 employee_dict[employ_id] = info_dict print("工號為 %s 的員工資訊新增成功!!!" % employ_id) # 這裡只是起到列印觀察的作用,可註釋掉下面這一行 # 說明僅僅還是放在字典裡面,畢竟輸出是字典形式,怎麼顯示那是第四個功能該做的事 # print(employee_dict) # {'1001': {'name': '張三', 'sex': '男', 'salary': '5000'}} def update_info(): """修改員工資訊""" print("修改員工===>") # 實現步驟 1.拿到要修改員工的工號 # 1.1如果工號不存在,則提示錯誤資訊,終止函式執行,返回 # 1.2如果存在,則修改對應的資訊 # 1.2.1 顯示原來的資訊再修改 # 2.因為並不是所有的資訊都需要修改,萬一不需要修改的怎麼辦?如何簡化使用操作? # 2.1判斷修改時輸入的是不是惟恐,為空就保持不變,不為空則說明修改了 employ_id = input("請輸入你要修改的員工的工號") all_id = list(employee_dict.keys()) if employ_id not in all_id: print("該員工工號不存在,不能進行修改!!!") return new_name = input("姓名是:%s 修改後的姓名:" % employee_dict[employ_id]['name']) new_sex = input("性別是:%s 修改後的性別:" % employee_dict[employ_id]['sex']) new_salary = input("工資是:%s 修改後的工資:" % employee_dict[employ_id]['salary']) # 因為並不是所有的資訊都需要修改,萬一不需要修改的怎麼辦?如何簡化使用操作? if new_name != "": employee_dict[employ_id]['name'] = new_name if new_sex != "": employee_dict[employ_id]['sex'] = new_sex if new_salary != "": employee_dict[employ_id]['salary'] = new_salary print("工號為 %s 的員工資訊修改成功!!!" % employ_id) def delete_info(): """刪除員工資訊""" print("刪除員工===>") # 實現步驟:1.輸入要刪除員工的工號 # 2.判斷工號是否存在,不存在就給出提示資訊,終止函式執行 # 3.如果存在,則直接刪除 employ_id = input("請輸入你要刪除的員工的工號") all_id = list(employee_dict.keys()) if employ_id not in all_id: print("該員工工號不存在,不能進行刪除!!!") return else: # 直接刪除這個字典 del employee_dict[employ_id] print("工號為 %s 的員工資訊刪除成功!!!" % employ_id) def show_all_info(): """顯示員工資訊""" print("顯示所有員工資訊===>") # 實現步驟:1.判斷員工是否存在,如果不存在則提示返回 # 1.1怎麼判斷?當列表長度為0時,則說明不存在 # 2.如果存在,就打印表頭 # 3.列印分割線 # 4.遍歷員工資訊,依次輸出字典資訊 # 判斷員工是否存在 if len(list(employee_dict.keys())) == 0: print("當前沒有任何的員工資訊,請先選擇操作 1,新增員工!!!") # return 下方的程式碼不會被執行 return # 打印表頭 print("-" * 40) for people in ["工號", "姓名", "性別", "工資"]: print(people, end="\t\t") # 列印分割線 # 增加換行 print("") print("-" * 40) # 遍歷員工資訊,依次輸出字典資訊 # 這個items方法是把字典轉換成列表的方法,須特別注意 for jober in employee_dict.items(): print("%s\t\t%s\t\t%s\t\t\t%s" % (jober[0], jober[1]['name'], jober[1]['sex'], jober[1]['salary'])) print("-" * 40)
歡迎各位大佬評論和交流,咱們一起學習,一起進步
&n