Python - 建立互動式名言生成器



在這裡,我們將建立一個 Python 指令碼,從 API 獲取名言,處理錯誤並根據使用者提供的特定輸入呈現文字名言。

安裝

首先,我們必須安裝 requests 模組

我們可以使用 pip輕鬆安裝它。轉到終端使用此程式碼:

pip install requests

解決方案說明

以下 Python 程式碼解釋瞭如何從 API 讀取隨機名言並要求使用者根據他們的情緒選擇名言。

指令碼分為兩個主要函式和錯誤處理:

1. get_random_quote() 方法

使用此方法,應用程式向 Quotable API(現在為 https://api.quotable.io/random)發出 HTTP GET 請求。它處理執行請求時可能發生的錯誤以及可能干擾請求處理或接收不正確響應的網路問題,以檢查是否存在任何錯誤,應捕獲這些錯誤並提供其詳細資訊。

2. 錯誤處理

這是透過使用稱為 try except 塊的異常處理工具來管理 requests.exceptions 來完成的。儘管該函式有大量註釋,但我故意將其放入 RequestException 中,以確保即使在網路錯誤的情況下,指令碼也能保持穩定。

3. main()

它們接受使用者的輸入並根據使用者給出的指令指導流程。它將詢問使用者他/她是快樂還是悲傷,然後程式將進入一個迴圈,使用者可以在其中請求名言或程式終止。此迴圈旨在掃描使用者的輸入,並在需要時執行其他操作。使用者互動:透過這種方式,使用者可以鍵入“get”以繼續檢視每日另一條名言,或鍵入“exit”以結束指令碼。這種互動性將持續到使用者對系統感到滿意為止,從而可以更好地瞭解系統。

建立互動式名言生成器的Python程式碼

import requests

def get_random_quote():
   url = "https://api.quotable.io/random"
   try:
      response = requests.get(url)
      response.raise_for_status()  # Raise an exception for HTTP errors
      quote_data = response.json()
      return f"{quote_data['content']} - {quote_data['author']}"
   except requests.exceptions.RequestException as e:
      return f"Error fetching quote: {e}"

def main():
   expression = input("Enter expression (happy/sad): ").strip().lower()
   if expression not in ['happy', 'sad']:
      print("Invalid expression. Please choose 'happy' or 'sad'.")
      return

   print(f"Quotes for {expression} mood:")
   while True:
      user_input = input("Type 'get' for a quote or 'exit' to stop: ").strip().lower()
      if user_input == 'get':
         print(get_random_quote())
      elif user_input == 'exit':
         print("Exiting the program.")
         break
      else:
         print("Invalid input. Please type 'get' or 'exit'.")

if __name__ == "__main__":
   main()

輸出

Quote Generator

有兩個表情:快樂和悲傷,這是悲傷表情的輸出。

Quote Generator

這是快樂表情的輸出。

程式碼概要

這段程式碼將顯示兩種表情:快樂和悲傷。選擇意味著你必須輸入“happy”或“sad”。輸入“happy”後,它會顯示你想要獲取的內容或退出選項。如果你輸入“get”,它會給你一個隨機的名言,並顯示作者姓名。之後,它會再次顯示“get”或“exit”選單。如果你輸入“exit”,它將退出程式碼。

結論

從線上API呼叫資料並自動響應使用者輸入的能力,是當今程式設計環境中一項必不可少的素質。除了展示requests庫的實際應用外,這段Python指令碼還演示了錯誤處理和使用者互動作為開發中一些最重要方面的問題。因此,透過採用這種方法,開發人員將能夠建立引人入勝的應用程式,即時提供資料。

python_projects_from_basic_to_advanced.htm
廣告