文章目錄
- 一、學生成績明細單
- 二、購物車
- 三、掛號就診系統
本系列文章通過 1000(一篇文章表示 1 個實體) 個實體 ,為讀者提供較為詳細的練習題目,以便讀者舉一反三,深度學習,本系列的文章涉及到 Python 知識點包括:Python 語言基礎、運算子和運算式、陳述句和程式結構、串列和元組、字典和集合、字串、正則運算式、函式、面向物件編程、模塊和包、例外處理和程式除錯、檔案和目錄操作、資料庫編程、界面編程、網路編程、WEB 編程、行程和執行緒、網路爬蟲、游戲編程等知識點,由易到難,由淺入深,一步步打下堅實的編程基礎,
本系列文章涉及的演算法包括搜索、回溯、遞回、排序、迭代、貪心、分治和動態規劃等,涉及的資料結構包括字串、串列、指標、區間、佇列、矩陣、堆疊、鏈表、哈希表、線段樹、二叉樹、二叉搜索樹和圖結構等,
本系列文章是筆者為適應當前教育改革的創新要求,更好地踐行語言類課程,滿足實踐教學與創新能力培養的需要,閱讀大量書籍、各大互聯網公司的面試演算法、LintCode、LeetCode、九章演算法和結合筆者近幾年專案經驗撰寫的系列文章,精選了 1000 個趣味性、實用性強的應用實體,從不同難度、不同演算法、不同型別和不同資料結構等方面,將實際演算法進行總結,希望為 Python 編程人員拋磚引玉,由于筆者經驗與水平有限,博文中疏漏及不妥之處在所難免,衷心地希望各位讀者在評論區多提寶貴意見及具體的修改建議,以便筆者進一步修改和完善,
一、學生成績明細單
需求:設計一個串列,計劃存盤 4 名學生的成績,包括語文、數學和英語三門科目,分別給這 4 名學生添加相應的學科分數,求出總分第一名的學生和各科目的成績明細,演示效果如下:

示例代碼如下:
# -*- coding: UTF-8 -*-
"""
@author:AmoXiang
@file:21.學生成績單明細.py
@time:2021/01/23
"""
import random # 匯入隨機函式包
def get_score(result): # 定義分數生成函式
while True: # 無限次回圈
score = random.randint(60, 100) # 隨機生成一個在60-100之間的數
if score not in result: # 判斷該數是否在不在串列中
result.append(score) # 將該亂數添加到串列中
break # 跳出回圈
return result # 回傳串列
student_name = ["張三", "李四", "王五", "趙六"] # 定義有4個學生的串列
chinese_score = list() # 定義存盤語文分數的串列
math_score = list() # 定義存盤數學分數的串列
english_score = list() # 定義存盤英語分數的串列
for i in range(len(student_name)): # 通過回圈生成語文、數學、英語分數
chinese_score = get_score(chinese_score) # 生成一個語文分數
math_score = get_score(math_score) # 生成一個數學分數
english_score = get_score(english_score) # 生成一個英語分數
print('student name:', student_name) # 列印學生名單
print('chinese score:', chinese_score) # 列印語文成績單
print('math score:', math_score) # 列印數學成績單
print('english score:', english_score) # 列印英語成績單
student_detail_score = list() # 定義存盤學生成績明細的串列
# 生成成績明細
for i in range(len(student_name)): # 通過回圈生成每位學生成績明細單
student_score = list() # 定義學生分數串列
student_score.append(chinese_score[i]) # 將語文分數添加到串列中
student_score.append(math_score[i]) # 將數學分數添加到串列中
student_score.append(english_score[i]) # 將英語分數添加到串列中
student_detail_score.append(student_score) # 將該學生的成績明細添加到串列中
print('學生成績單明細:', student_detail_score) # 列印所有學生的成績明細
student_total_score = list() # 定義總分成績串列
for i in student_detail_score: # 回圈遍歷學生成績明細串列
student_total_score.append(sum(i)) # 將學生的成績明細單求和并添加到總分串列中
print('總分明細:', student_total_score) # 列印總分成績串列
first = sorted(student_total_score)[len(student_name) - 1] # 獲取最高分
first_index = student_total_score.index(first) # 獲取最高分對應的下標
# 列印第一名學生的姓名、總分和平均分
print("第一名:\n姓名:%s,總分:%d,均分:%.2f" % (student_name[first_index], first, first / 3))
# 列印第一名學生的成績明細
print("語文:%d,數學:%d,英語:%d" % (student_detail_score[first_index][0],
student_detail_score[first_index][1], student_detail_score[first_index][2]))
二、購物車
需求:設計一個簡單的購物車程式,將想要購買的商品資訊添加到購物車中,程式運行結果如下圖所示:

示例代碼如下:
# -*- coding: UTF-8 -*-
"""
@author:AmoXiang
@file:22.購物車.py
@time:2021/01/23
"""
products = [['iphone11', 5499], # 定義商品串列
['mate30 Pro', 5799],
['小米9 Pro', 4299],
['Canon 80D', 8299],
['華為P30 Pro', 4988],
['MacBook Pro', 10579]]
print('***************商品串列***************')
for index, p in enumerate(products): # 回圈遍歷商品資訊
print("{}.{} \t{}".format(index, p[0], p[1])) # 列印所有的商品
shopping = list() # 定義一個空的購物車串列
while True: # 回圈向購物車中添加商品
choice = input('請選擇添加購物車的編號:') # 選擇購買的商品編號
if choice.isdigit(): # 判斷輸入的型別是否是數字
choice = int(choice) # 將字串型別轉換為數字型別
if 0 <= choice < len(products): # 判斷輸入的商品編號是否滿足條件
shopping.append(products[choice]) # 將選擇的商品添加到購物車中
print('%s 已加入購物車' % (products[choice])) # 列印添加的商品資訊
else:
print('選擇的商品不存在,請重新選擇') # 列印商品不存在資訊
flag = input('是否繼續添加商品[y/n]:') # 判斷是否繼續添加商品,
if flag != 'y': # 只有輸入y時為真,其余情況為假
print('***************購物車***************')
for index, s in enumerate(shopping): # 遍歷購物車串列
print("{}.{} \t{}".format(index, s[0], s[1])) # 列印購物車中的商品資訊
break # 跳出回圈
else:
print('商品編號格式不正確,請重新輸入!') # 列印商品編號格式不正確資訊
三、掛號就診系統
需求:撰寫一個程式,反映病人到醫院掛號看病的情況,通過模擬病人掛號就診這一程序,系統主要功能如下:
掛號:輸入掛號病人的名字,將其加入掛號佇列中,
就診:掛號佇列中最前的病人前往就診,并將其從掛號佇列中移除,
查看已掛號人數:將掛號佇列中的病人從前往后顯示出來,
掛號人滿不再預約:顯示已經掛號的病人,結束程式,
示例代碼如下:
# -*- coding: UTF-8 -*-
"""
@author:AmoXiang
@file:23.掛號就診系統.py
@time:2021/01/23
"""
q = [] # 定義一個空串列,存盤掛號的病人
while True: # 無限次使用系統
print(''' # 以原格式列印系統格式
************ 就診掛號系統 ************
1.掛號
2.就診
3.查看已掛號人數
4.掛號人滿不再預約
''')
choice = input('輸入選項序號:') # 輸入操作序號
if choice == '1': # 選擇掛號功能
name = input('您的姓名:') # 輸入病人的姓名
if name in q: # 判斷該病人是否已經掛號
print('您已掛號!') # 列印資訊
else: # 之前沒有掛號
q.append(name) # 將該病人的姓名添加到串列中
print('掛號成功!') # 列印掛號成功資訊
elif choice == '2': # 選擇就診功能
if q is []: # 判斷是否沒有人在掛號串列中
print('沒有人預約掛號!') # 列印資訊
else:
print('請%s前往就診,' % q[0]) # 列印前往就診人姓名
q.pop(0) # 將該人姓名從串列中移除
elif choice == '3': # 選擇查看已掛號人員功能
for i, name in enumerate(q): # 遍歷掛號人員串列
print('No.{}:{}'.format(i + 1, name)) # 列印資訊
elif choice == '4': # 選擇結束掛號功能
for i, name in enumerate(q): # 遍歷掛號人員串列
print('No.{}:{}'.format(i + 1, name)) # 列印資訊
print('掛號人數已滿,不再掛號!') # 列印不在掛號資訊
exit(0) # 退出系統
else: # 選擇的操作不正確
print('序號格式輸入錯誤!') # 列印錯誤資訊
break
感謝您閱讀本篇博文,希望本文能成為您編程路上的領航者,祝您閱讀愉快!

好書不厭讀百回,熟讀課思子自知,而我想要成為全場最靚的仔,就必須堅持通過學習來獲取更多知識,用知識改變命運,用博客見證成長,用行動證明我在努力,
如果我的博客對你有幫助、如果你喜歡我的博客內容,請點贊、評論、收藏一鍵三連哦!聽說點贊的人運氣不會太差,每一天都會元氣滿滿呦!如果實在要白嫖的話,那祝你開心每一天,歡迎常來我博客看看,
?編碼不易,大家的支持就是我堅持下去的動力,點贊后不要忘了關注我哦!
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/251815.html
標籤:其他
