Python 100天-從新手到大師學習筆記Day05:構造程式邏輯

更新於 發佈於 閱讀時間約 5 分鐘


  • 構造程式邏輯:

學習了Python的核心語言元素後,必須做的一件事情就是嘗試用所學知識去解決現實中的問題,換句話說就是鍛鍊自己把用人類自然語言描述的演算法(解決問題的方法和步驟)翻譯成Python程式碼的能力。


  • 構造程式邏輯練習1:百錢百雞問題。

需求:公雞5元一隻,母雞3元一隻,小雞1元三隻,用100塊錢買一百隻雞,問公雞、母雞、小雞各有多少隻?


"""
《百錢百雞》問題

Version: Day05
Author: SQA yang

公雞5元一隻,母雞3元一隻,小雞1元三隻
100塊錢買一百隻雞,問公雞、母雞、小雞各有多少隻?
"""

for x in range(0, 20):
#公雞的數量x,範圍是 019,因為公雞每隻 5 元,最多只能買 19 隻。

for y in range(0, 33):
#母雞的數量y,範圍是 032,因為母雞每隻 3 元,最多只能買 33 隻。

z = 100 - x - y
#小雞的數量z,是用總數 100 減去公雞和母雞的數量得到,確保三種雞的總數是 100 隻。

if 5 * x + 3 * y + z / 3 == 100:
#當這三種雞的價格總和等於 100 時,說明該組合符合條件。

print('公雞: %d隻, 母雞: %d隻, 小雞: %d隻' % (x, y, z))
#'%d' 是格式化字串的一部分,表示要插入一個整數
百錢百雞程式練習

百錢百雞程式練習


  • 構造程式邏輯練習2:CRAPS博奕遊戲

需求:遊戲使用兩粒骰子,簡單的規則是:玩家第一次搖骰子如果搖出了7點或11點,玩家勝;玩家第一次如果搖出2點、3點或12點,莊家勝;其他點數玩家繼續搖骰子,如果玩家搖出了7點,莊家勝;如果玩家搖出了第一次搖的點數,玩家勝;其他點數,玩家繼續要骰子,直到分出勝負。

"""
Craps博弈遊戲
我們設定玩家開始遊戲時有1000元的賭注
遊戲結束的條件是玩家輸光所有的賭注

Version: Day05
Author: SQA yamg
"""
from random import randint

money = 1000 #設定玩家開始時有1000元賭注
while money > 0: #這個迴圈會進行到玩家沒錢為止
print('你的總資產為:', money)
needs_go_on = False #控制遊戲是否繼續進行的變數,初始設為False
while True: #這個內部的無限迴圈用來處理玩家下注的過程。
debt = int(input('請下注: '))
if 0 < debt <= money: #下注金額不超過玩家的錢
break
first = randint(1, 6) + randint(1, 6)
#randint(1, 6) 會生成 16 之間的隨機數,兩個骰子的點數加起來賦值給變數 first。

print('玩家搖出了%d點' % first)
if first == 7 or first == 11: #判斷第一輪結果
print('玩家勝!')
money += debt #玩家贏了要加入他下注金額
elif first == 2 or first == 3 or first == 12:
print('莊家勝!')
money -= debt #玩家輸了要扣掉他的下注金額
else:
needs_go_on = True
#當 needs_go_on 為 True 時,進入內部的 while needs_go_on: 迴圈。
while needs_go_on:
needs_go_on = False
current = randint(1, 6) + randint(1, 6)
print('玩家搖出了%d點' % current)
if current == 7: #玩家搖出了7點,莊家勝
print('莊家勝')
money -= debt
elif current == first: #玩家搖出了第一次搖的點數,玩家勝
print('玩家勝')
money += debt
else:
needs_go_on = True
print('你破產了, 遊戲結束!')
CRAPS博奕遊戲使用 if-elif-else和while

CRAPS博奕遊戲使用 if-elif-else和while


以上為Python100天從新手到大師的Day05學習筆記。

留言
avatar-img
留言分享你的想法!
avatar-img
軟體測試工程師Yang
2會員
14內容數
從一個低薪文組轉職軟體測試工程師Software Quality Assurance (SQA) Engineer的過程,紀錄閱讀過的相關測試書籍文獻,以及記錄自我技術成長的過程,包含手動測試與自動化測試相關工具等。
2024/11/30
這篇文章介紹物件導向程式設計(OOP)的基本概念,包括類和物件的定義以及四大核心概念:封裝、繼承、多型和抽象。讀者將瞭解如何在Python中定義類和物件,並學習如何使用這些OOP特性來構建更具組織性和可維護性的程式碼。透過實例,文章探討如何將真實世界的物件模擬到程式設計中。
Thumbnail
2024/11/30
這篇文章介紹物件導向程式設計(OOP)的基本概念,包括類和物件的定義以及四大核心概念:封裝、繼承、多型和抽象。讀者將瞭解如何在Python中定義類和物件,並學習如何使用這些OOP特性來構建更具組織性和可維護性的程式碼。透過實例,文章探討如何將真實世界的物件模擬到程式設計中。
Thumbnail
2024/10/27
本篇文章探討了Python中的字串、列表、元組、集合與字典這五種資料類型的定義與基本操作。這些資料類型各具特點,例如字串和元組是不可變的,列表和集合是可變的,適合不同的使用場景。文章中詳細介紹如何定義進行基本的操作(如添加、刪除、訪問元素等)。
Thumbnail
2024/10/27
本篇文章探討了Python中的字串、列表、元組、集合與字典這五種資料類型的定義與基本操作。這些資料類型各具特點,例如字串和元組是不可變的,列表和集合是可變的,適合不同的使用場景。文章中詳細介紹如何定義進行基本的操作(如添加、刪除、訪問元素等)。
Thumbnail
2024/10/20
本文探討Python中函式的定義和作用,重點解釋如何通過函式定義def 來解決重複程式碼的問題,並介紹函式引數的預設值和可變引數的使用。並分析了函式的命名衝突問題,以及函式的作用域管理,特別是全域性和區域性變數的區別。這篇文章將幫助初學者更好地理解Python函式的基礎知識,提升程式碼質量。
Thumbnail
2024/10/20
本文探討Python中函式的定義和作用,重點解釋如何通過函式定義def 來解決重複程式碼的問題,並介紹函式引數的預設值和可變引數的使用。並分析了函式的命名衝突問題,以及函式的作用域管理,特別是全域性和區域性變數的區別。這篇文章將幫助初學者更好地理解Python函式的基礎知識,提升程式碼質量。
Thumbnail
看更多
你可能也想看
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
學習Python核心語法,從變數、資料型態到物件導向程式設計,涵蓋15個重要技巧,並包含實例與說明,助你快速建立程式基礎。
Thumbnail
學習Python核心語法,從變數、資料型態到物件導向程式設計,涵蓋15個重要技巧,並包含實例與說明,助你快速建立程式基礎。
Thumbnail
從實際應用中學習 Python 程式設計,提升技能並建立作品集。文章提供八個循序漸進的 Python 專案範例,涵蓋檔案操作、網路爬蟲、Web 應用、自動化腳本、數據分析、遊戲開發、API 互動及應用程式部署,並附上實戰建議及學習資源。
Thumbnail
從實際應用中學習 Python 程式設計,提升技能並建立作品集。文章提供八個循序漸進的 Python 專案範例,涵蓋檔案操作、網路爬蟲、Web 應用、自動化腳本、數據分析、遊戲開發、API 互動及應用程式部署,並附上實戰建議及學習資源。
Thumbnail
本篇Python筆記介紹了List和Dictionary Comprehensions的應用與優勢。通過具體例子展示如何利用這些生成式來進行資料篩選、轉換和整合,並提升程式碼的可讀性和效能。適合新手學習如何用簡潔的語法來快速創建和操作資料結構,幫助你在資料分析中更靈活應用Python。
Thumbnail
本篇Python筆記介紹了List和Dictionary Comprehensions的應用與優勢。通過具體例子展示如何利用這些生成式來進行資料篩選、轉換和整合,並提升程式碼的可讀性和效能。適合新手學習如何用簡潔的語法來快速創建和操作資料結構,幫助你在資料分析中更靈活應用Python。
Thumbnail
這篇文章介紹物件導向程式設計(OOP)的基本概念,包括類和物件的定義以及四大核心概念:封裝、繼承、多型和抽象。讀者將瞭解如何在Python中定義類和物件,並學習如何使用這些OOP特性來構建更具組織性和可維護性的程式碼。透過實例,文章探討如何將真實世界的物件模擬到程式設計中。
Thumbnail
這篇文章介紹物件導向程式設計(OOP)的基本概念,包括類和物件的定義以及四大核心概念:封裝、繼承、多型和抽象。讀者將瞭解如何在Python中定義類和物件,並學習如何使用這些OOP特性來構建更具組織性和可維護性的程式碼。透過實例,文章探討如何將真實世界的物件模擬到程式設計中。
Thumbnail
本文介紹了學習Python後,如何將日常自然語言翻譯成程式碼。並運用所學知識解決實際問題。這些練習不僅鞏固了學習者的程式設計能力,還提升解決問題的思維能力。適合所有想要進一步瞭解程式設計邏輯的Python初學者閱讀。
Thumbnail
本文介紹了學習Python後,如何將日常自然語言翻譯成程式碼。並運用所學知識解決實際問題。這些練習不僅鞏固了學習者的程式設計能力,還提升解決問題的思維能力。適合所有想要進一步瞭解程式設計邏輯的Python初學者閱讀。
Thumbnail
歡迎來到我們的「🏫 Python 先修班」系列, 這裡面涵蓋了我們入門Python的技巧與教學, 以下是我們為您整理的閱讀順序, 也非常感謝您的支持, 期望透過簡單易懂的知識分享, 讓我們快速入門Python這門語言, 與業界正式接軌。 【🔒 Python 先修班】我應該怎麼開始學Pytho
Thumbnail
歡迎來到我們的「🏫 Python 先修班」系列, 這裡面涵蓋了我們入門Python的技巧與教學, 以下是我們為您整理的閱讀順序, 也非常感謝您的支持, 期望透過簡單易懂的知識分享, 讓我們快速入門Python這門語言, 與業界正式接軌。 【🔒 Python 先修班】我應該怎麼開始學Pytho
Thumbnail
您是否苦於網路資訊爆炸嗎? 教學何其多,但卻無法好好選擇的困境呢? 歡迎加入「🔒 阿Han的軟體心法實戰營」, 這裡不給您冗餘的雜訊, 單刀直入直接送您重點, 避開選擇障礙的困境, 讓您獲得業界標準的開發起手式, 成為Top 1的頂尖人才。 ✅ 在這裡可以學到什麼 這裡您可以學到業界開發的實戰
Thumbnail
您是否苦於網路資訊爆炸嗎? 教學何其多,但卻無法好好選擇的困境呢? 歡迎加入「🔒 阿Han的軟體心法實戰營」, 這裡不給您冗餘的雜訊, 單刀直入直接送您重點, 避開選擇障礙的困境, 讓您獲得業界標準的開發起手式, 成為Top 1的頂尖人才。 ✅ 在這裡可以學到什麼 這裡您可以學到業界開發的實戰
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News