close

關於Python控制結構的秘笈,最終回:實作簡單的計算機

終於來到Python控制結構的最終章了,學了這麼多紙上功夫,今天來實作吧!

 

Python教學文是 Python 項目實做:一個簡單的計算器。本實作應用了前面的Python教學文章,其中包含Python的基本函數與概念,有while 迴圈if 條件判斷式elif 寫法type conversion類型轉換

每個部分說明了 Python 程式的不同部分。

第一部分是計算機的起始畫面,讓用戶一直不斷輸入,直到用戶輸入「exit」為止,因此使用了while 迴圈

while True:
   print("選項:")
   print("輸入 '+' 讓兩個數值互加")
   print("輸入 '-' 讓兩個數值互減")
   print("輸入 '*' 讓兩個數值互乘")
   print("輸入 '/' 讓兩個數值互除")
   print("輸入 'exit' 來結束程式")
   user_input = input(": ")

   if user_input == "exit":
      break
   elif user_input == "+":
      ...
   elif user_input == "-":
      ...
   elif user_input == "*":
      ...
   elif user_input == "/":
      ...
   else:
      print("不知道你在輸入什麼")  

上述程式還沒寫完呢!只完成了起始畫面與結構。接下來我們針對每個小部分來寫 Python 程式碼:

加法的部分:

elif user_input == "+":
    num1 = float(input("請輸入數字:"))
    num2 = float(input("請輸入另一個數字:"))

現在,當用戶輸入「+」後,程式就會提示輸入兩個數字。以上我們使用 float()函數,來將用戶輸入的數字強制轉變成浮點數。但是若用戶輸入的不是數字,程式就會 GG。

接下來,我們寫的程式碼,是用來執行用戶輸入的兩個數字,完成加總並且將結果輸出。Python 程式碼如以下所示:

elif user_input == "+":
    num1 = float(input("請輸入數字:"))
    num2 = float(input("請輸入另一個數字:"))
    result = str(num1 + num2)
    print("答案是 " + result)

以此類推,減法的部分為:

elif user_input == "-":
    num1 = float(input("請輸入數字:"))
    num2 = float(input("請輸入另一個數字:"))
    result = str(num1 - num2)
    print("答案是 " + result)

以此類推,乘法的部分為:

elif user_input == "*":
    num1 = float(input("請輸入數字:"))
    num2 = float(input("請輸入另一個數字:"))
    result = str(num1 * num2)
    print("答案是 " + result)

以此類推,除法的部分為:

elif user_input == "/":
    num1 = float(input("請輸入數字:"))
    num2 = float(input("請輸入另一個數字:"))
    result = str(num1 / num2)
    print("答案是 " + result)

現在我們已將Python教學的任程式完成啦!一起看看看執行結果如何:

Python-tutorial-creating-a-calculator.gif

 

相關閱讀推薦:

關於Python控制結構的秘笈1:布林值

關於Python控制結構的秘笈2-1:if的條件判斷

關於Python控制結構的秘笈2-2:else的條件判斷

SEO優化不只揚善,也要利用robots meta隱惡

五招讓前端工程師輕易搞定CSS背景(一):設定背景重複顯示

暑假快到了!與其讓兒子盲目拚學測,我寧可讓他先選擇人生方向~

人人都能是工程師!台灣 IT 培訓中心推「找到工作再付學費」專案,要試試嗎?

 

 

arrow
arrow
    創作者介紹
    創作者 布萊恩的創業小窩 的頭像
    布萊恩的創業小窩

    布萊恩的創業小窩的部落格

    布萊恩的創業小窩 發表在 痞客邦 留言(0) 人氣()