筆記:深入淺出-程式設計(一)

閱讀時間約 7 分鐘

為什麼要學習撰寫程式?

使用別人所撰寫的軟體時,總是會受限於別人所提供的特定功能,但是當你遇到了一些工作是目前現有的軟體都幫不上忙的情況該怎麼辦?

如果你會撰寫程式,這時候就可以自己創造一個專為解決此工作的程式;換句話說,撰寫程式讓你擁有控制電腦的力量。

安裝 Python

  • 首先必須在電腦中安裝 Python,在寫此系列文章時我所安裝的版本為: v.3.12.0。
  • 執行一個程式需要兩樣東西:編輯器(editor)與解譯器 (interpreter)。編輯器就是將你所寫得程式碼存在硬碟的檔案中,Python 的檔案副檔名為 .py;而解譯器負責把程式碼轉譯成電腦可以讀懂的 0,1檔案。
  • 在完成安裝 Python 後可以使用 Python3 隨附的 IDLE 內建應用程式。IDLE 這個應用程式是一個整合性開發環境 IDE(Integrated Development Environment),意思就是你可以在 IDLE 中完成編輯程式碼、轉譯為二進制形式最後執行程式。

先從一個猜數字大小的遊戲開始

  • 功能需求:請設計一個程式,讓使用者輸入一個數字判定是否猜對目標數字 5,如果猜對則輸出"You Win",如果猜錯則輸出"You Lose"。

程式碼:

print("Welcome")
g = input("Guess the number: ")
guess = int(g)
if(guess == 5):
print("You win")
else:
print("You lose")
print("Game Over")
  • 這段程式碼的意思:
  1. 顯示"Welcome"訊息
  2. 要求使用者輸入答案
  3. 輸入的答案轉成數字
  4. 判斷輸入的數字是否等於 5
  5. 如果等於則輸出"You Win"
  6. 如果不等於則輸出"You Lose"
  7. 最後遊戲結束輸出"Game Over"


分支條件 if/else

  • 程式必須在不同的狀況下做不同的事情,這就是分支條件(branch condition)的功能。分支條件具有true,false的值,當分支條件成立的時候,就會執行true分支的程式碼;反之分支條件不成立,就會執行false分支的程式碼。
  • if/else 分支條件:剛剛的程式碼內,我們就是利用了if/else 分支條件來決定程式要執行甚麼。當輸入的數值等於5時,就會進入 true 分支:輸出"You Win";如果輸入數值不等於5時,就會進入false分支:輸出"You Lose"。

增加提示訊息

  • 功能需求變更:使用者在輸入數值後想知道自己猜的數字比起目標數字是大還是小
  • 這時後除了要判斷是否等於目標數字以外,程式還需要多一個條件分支來判斷是否是大於還是小於目標數字,並且輸出相對應的提示訊息。

程式碼:

print("Welcome")
g = input("Guess the number: ")
guess = int(g)
if(guess == 5):
print("You win")
else:
if(guess > 5):
print("Too high")
else:
print("Too low")
print("You lose")

print("Game Over")


一遍又一遍的執行

  • 功能需求變更:剛剛的程式中如果使用者想要再猜一次數字的話就需要重新啟動程式,要如何才能讓使用者根據提示訊息反覆猜數字直到猜對呢?
  • 程式可以反覆執行每一片段的程式碼,這就是迴圈(loop)
  • 迴圈也和分支條件一樣擁有迴圈條件(loop condition),如果迴圈條件成立(true)就會執行迴圈內的程式碼;反之如果迴圈條件不成立(false),就會跳出迴圈。

程式碼:

print("Welcome")
guess = 0

while guess != 5:

g = input("Guess the number: ")
guess = int(g)
if(guess == 5):
print("You win")
else:
if(guess > 5):
print("Too high")
else:
print("Too low")
print("You lose")

print("Game Over")

While 迴圈

  • 上述的程式碼就是使用了While 迴圈讓使用者反覆猜數字直到猜對。
  • 在While 迴圈中,每次都會判斷 guess != 5 這個迴圈條件,如果成立(也就是使用者猜錯了),就會執行迴圈主體程式碼讓使用者猜數字;當迴圈條件不成立(也就是使用者猜對了),就會跳出迴圈並且輸出遊戲結束訊息。

每次都有點不一樣

  • 功能需求變更:現在猜數字遊戲已經完成,可是使用者只要玩過一次,就會知道目標數字是5,那要如何在每次使用者開啟程式時,都有一個隨機產生的目標數字呢?
  • 我們需要一個產生隨機數字的方法,這時候請在剛剛的程式碼最上面加入兩行程式碼,就可以每次產生介於1~10的隨機數字,然後把這個隨機數字設為目標數字。

程式碼:

from random import randint
secret = randint(1,10)

完整程式碼:

from random import randint
secret = randint(1,10)

print("Welcome")
guess = 0

while guess != secret:

g = input("Guess the number: ")
guess = int(g)
if(guess == secret):
print("You win")
else:
if(guess > secret):
print("Too high")
else:
print("Too low")
print("You lose")

print("Game Over")






5會員
8內容數
留言0
查看全部
發表第一個留言支持創作者!
Ivan的沙龍 的其他內容
你可能也想看
《探索筆記卡片:從瞬間想法到深入的知識管理》6:保值與更新:確保筆記持續價值的秘訣隨著時間的推移,我們的筆記方法可能會改變。 不論是筆記的內容還是方法,都需要隨著學習的深入而進行調整。 持續的反思和嘗試是筆記進步的關鍵。 ▋我們的筆記方法為何會隨著時間而改變? 因為你寫筆記的目的也會換。
Thumbnail
avatar
王啟樺
2023-09-10
《探索筆記卡片:從瞬間想法到深入的知識管理》5:寫作的魔力:如何透過原創筆記改變自己對於筆記,有時我們會引用他人的段落,有時則用自己的話寫。 使用他人的句子可以作為學習的起點,但最終還是應該進行原創的寫作。 ▋你應該如何平衡引用和原創? 我的原則是,每引用一次,就原創五句話。 這五句話,其實可以用131寫作節奏來寫
Thumbnail
avatar
王啟樺
2023-09-09
《探索筆記卡片:從瞬間想法到深入的知識管理》4:Obsidian vs. Notion:哪款筆記軟體更適合你的輸入與輸出隨著筆記卡片的增加,某些軟體可能面臨效能問題。 例如,Obsidian軟體可能在卡片過多時讀取變慢。 但這些技術上的問題不應成為制約我們學習的障礙。
Thumbnail
avatar
王啟樺
2023-09-08
《探索筆記卡片:從瞬間想法到深入的知識管理》3:解密學術論文:用卡片化學習突破知識障礙學術論文的段落比網路文章更為複雜。 利用筆記卡片的方式來解析學術論文能夠提煉出更具價值的知識。 此外,卡片化的學習方法可能對學術研究特別有用。
Thumbnail
avatar
王啟樺
2023-09-07
《探索筆記卡片:從瞬間想法到深入的知識管理》2:鮮為人知的寫作秘訣:掌握段落解構術!每篇文章的段落都圍繞著特定的話題。 一個好的段落會圍繞著中心話題,且各句子間有很強的相關性。 通過拆解與分析段落,我們可以更深入地了解其核心意義。
Thumbnail
avatar
王啟樺
2023-09-06
《探索筆記卡片:從瞬間想法到深入的知識管理》1:讓學習更輕鬆:筆記卡片攻略大公開入門一個新知識時,筆記卡片的構造方式十分重要。 雖然我也曾經排斥直接引用他人的段落,但摳過來的內容可以為我們提供初步的了解。 利用筆記卡片建立自己的知識架構,可助於更深入地學習。
Thumbnail
avatar
王啟樺
2023-09-05
阿卡西紀錄解讀筆記(24)-深入內在每一次的阿卡西紀錄解讀都會改寫我們的能量網格,我們已經與開啟紀錄前的自己不一樣了,即將活出更有力量且擴展的自己,無需擔心自己沒有改變。
Thumbnail
avatar
煌語|阿卡西書籤與光的閱讀者
2023-07-11
深入了解區塊鏈(四) - Internal Txns? 真的有筆交易紀錄存在?今天我們會開始深入探討到EVM(以太坊虛擬機)上的一點點基礎知識。 若您是一個常常在etherscan.io上追蹤交易的朋友,一定對上面提到的各項資訊並不陌生。但我們觀察一筆交易時會發現,etherscan.io又額外提供了Internel Txns,這又是什麼呢?本篇將一同來探討。
Thumbnail
avatar
Steve Tsai
2023-05-23
閱讀筆記《深度造假:比真實還真的AI合成技術,如何奪走人類的判斷力,釀成資訊末日危機?》●深度造假是一種「合成媒體」(synthetic media,又譯「合成內容」),代表媒體內容(包括圖片、影像和聲音)受到操控,或完全由人工智慧創造。AI技術讓媒體控制變得更輕鬆,也更容易了(例如Photoshop或Instagram的濾鏡功能)。
avatar
偶希都理
2022-07-17