iT邦幫忙

2024 iThome 鐵人賽

DAY 4
0
Python

Python探索之旅:從基礎到實踐系列 第 4

Day 4: 條件語句、迴圈結構、列表與元組

  • 分享至 

  • xImage
  •  

1. 引言

在程式設計中,條件語句、迴圈結構是控制程式邏輯的核心工具,能讓程式根據不同情境執行特定的操作。而列表 (List) 與元組 (Tuple) 是常見的資料結構,用來儲存並操作一組資料。我將深入探討這些概念,並通過範例題目進行實作,確保扎實理解與應用。

2. 條件語句 (if-else)

條件語句允許根據特定條件進行不同的操作,常見形式為 if-elif-else 結構。這些語句能讓程式判斷並選擇合適的邏輯路徑。

範例程式碼

# 判斷輸入的數字是否為正數、負數或零
num = int(input("請輸入一個整數: "))

if num > 0:
    print("這是一個正數")
elif num < 0:
    print("這是一個負數")
else:
    print("這是零")

解釋

  • if 用於檢查第一個條件 (數字是否大於 0)。
  • elif 處理當第一個條件為 False 且檢查第二個條件 (小於 0)。
  • else 處理其他情況 (零)。

3. 迴圈結構

for 迴圈

for 迴圈適合用來遍歷序列,如列表、字串,或是重複執行固定次數的操作。

範例程式碼

# 計算 1 到 10 的數字總和
total = 0
for i in range(1, 11):
    total += i
print(f"1 到 10 的總和為: {total}")

解釋

  • for 迴圈遍歷 range(1, 11),即 1 到 10 的數字。
  • 每次迴圈將當前數字加到總和變數 total 中。
while 迴圈

while 迴圈則根據條件來決定是否繼續執行,當條件為真時迴圈持續進行,直到條件為假時停止。

範例程式碼

# 讓使用者不斷輸入數字,直到輸入負數為止
sum = 0
num = int(input("輸入一個數字 (輸入負數來結束): "))
while num >= 0:
    sum += num
    num = int(input("繼續輸入數字 (輸入負數來結束): "))
print(f"總和為: {sum}")

解釋

  • while 迴圈依據條件 num >= 0 來控制流程,只要使用者輸入正數或零,迴圈就會持續。
  • 一旦輸入負數,程式跳出迴圈並輸出總和結果。

4. 列表 (List) 與元組 (Tuple)

列表 (List)

列表是一種可變的資料結構,允許隨時添加、刪除或修改其中的元素。

範例程式碼

# 建立水果列表並新增元素
fruits = ["蘋果", "香蕉", "櫻桃"]
fruits.append("葡萄")
print(fruits)  # 輸出: ['蘋果', '香蕉', '櫻桃', '葡萄']

解釋

  • 使用 append() 函數來向列表末端新增元素。
  • 列表中的元素順序與存取方式是有序的,允許根據索引來訪問特定元素。
元組 (Tuple)

元組是一種不可變的資料結構,一旦定義就不能修改。

範例程式碼

# 定義一個元組,並取得其中的值
dimensions = (10, 20)
print(dimensions[0])  # 輸出: 10

解釋

  • 元組中的值不能被改變,適用於需要確保數據不被修改的情境。
  • 與列表一樣,元組可以透過索引訪問特定元素。

5. 練習題目與解題過程

題目 1: 判斷一個數字是否為奇數或偶數

題目描述:請使用者輸入一個整數,程式將判斷該數字是奇數還是偶數。
解題思路

  • 使用 if-else 條件語句判斷輸入數字是否能被 2 整除。
  • 若能整除則輸出為偶數,否則為奇數。

範例程式碼

num = int(input("輸入一個整數: "))
if num % 2 == 0:
    print(f"{num} 是偶數")
else:
    print(f"{num} 是奇數")
題目 2: 計算列表中所有數字的平方

題目描述:輸入一個包含數字的列表,程式將計算每個數字的平方,並儲存於另一個列表中。
解題思路

  • 使用 for 迴圈遍歷列表中的每個元素。
  • 計算每個元素的平方,並將結果儲存於新的列表中。

範例程式碼

numbers = [1, 2, 3, 4, 5]
squares = []
for num in numbers:
    squares.append(num ** 2)
print(f"數字的平方為: {squares}")
題目 3: 使用遞迴計算階乘

題目描述:輸入一個正整數,使用遞迴函數來計算該數字的階乘。
解題思路

  • 定義一個遞迴函數,當輸入數字為 1 時返回 1,否則返回該數字乘以該數字減 1 的階乘。
  • 利用遞迴函數計算階乘。

範例程式碼

def factorial(n):
    if n == 1:
        return 1
    else:
        return n * factorial(n - 1)

num = int(input("輸入一個整數: "))
print(f"{num} 的階乘為: {factorial(num)}")
題目 4: 判斷一個數字是否為質數

題目描述:請使用者輸入一個整數,程式將判斷該數字是否為質數。
解題思路

  • 使用 for 迴圈來檢查該數字是否能被 2 到該數字的平方根範圍內的任一數字整除。
  • 若找到能整除的數字,則該數字不是質數,否則為質數。

範例程式碼

import math

def is_prime(n):
    if n <= 1:
        return False
    for i in range(2, math.isqrt(n) + 1):
        if n % i == 0:
            return False
    return True

num = int(input("輸入一個整數: "))
if is_prime(num):
    print(f"{num} 是質數")
else:
    print(f"{num} 不是質數")

6. 結論

條件語句、迴圈結構、列表與元組是 Python 程式設計的核心工具,對控制程式邏輯、處理資料結構有著重要作用。本次通過實作題目,使這些概念更加扎實,能幫助我們有效掌握 Python 的基本操作與邏輯控制。接下來的學習將繼續深入資料結構、演算法等高階主題。


上一篇
Day 3: Python 字典的使用、物件導向與模組開發
下一篇
Day 5: 列表與元組 —— 操作、切片及使用場景
系列文
Python探索之旅:從基礎到實踐12
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言