🔢Python 程式練習:1

 Python 程式練習:判斷奇偶、季節、閏年

..........................................................
#布林值 True False
print(type(True))

print(1+1=="2")#是否相同
print(3<5)
print(2*5>=3**2)
print("al"in"apple")#是否包含值
lin=2in[12,3]
lin

🔢 判斷奇數或偶數:流程圖

這個流程圖展示了 number % 2 模數運算的判斷分支。

  • 核心概念: 模數運算子 (%)。

  • 流程: 輸入 $\rightarrow$ 判斷 $N \pmod 2 = 0$ $\rightarrow$ 輸出「偶數」或「奇數」。


🗓️ 判斷月份所屬季節:流程圖

這個流程圖清晰地展示了根據月份數字,程式會如何逐步檢查並決定輸出哪個季節。

  • 核心概念: 多重條件判斷 (if/elif/else)。

  • 流程: 輸入月份 $\rightarrow$ 依序檢查 $3, 4, 5$$\rightarrow$ $6, 7, 8$$\rightarrow$ $9, 10, 11$$\rightarrow$ 輸出結果。


📅 判斷平年或閏年:流程圖

這是最複雜的一個邏輯判斷,流程圖能有效幫助理解四層的判斷邏輯 (400、100、4 年規則) 是如何嵌套和執行的。

  • 核心概念: 複雜布林邏輯的嵌套判斷。

  • 優先順序: 程式會優先檢查 400 年規則,然後是 100 年規則,最後才是 4 年規則


💡 下一步建議

您還想嘗試其他哪些經典的程式設計練習題呢?例如:

  1. 計算階乘 (Factorial):使用迴圈 (forwhile)。

  2. 判斷質數 (Prime Number):使用迴圈和除法。

  3. 費波那契數列 (Fibonacci Sequence):使用迴圈或遞迴。

請問您對哪一個題目比較有興趣?

...................................................................................................................

nu=int(input("integer"))
print(nu>3 and nu>10) #和
print(nu>3 or nu>10) #或
print(not(nu!=5)) #非

"""
&|T|F
-+-+-
T|T|F
-+-+-
F|F|F

||T|F
-+-+-
T|T|T
-+-+-
F|T|F
"""

💻 Python 布林邏輯運算

您使用了三個核心的布林運算子:and (邏輯和)、or (邏輯或)、not (邏輯非)。

1. and (邏輯和)

  • 程式碼: print(nu > 3 and nu > 10)

  • 功能: 只有當 兩個 條件都成立 (True) 時,結果才是 True。

  • 對應真值表: 您的第一個表格完美對應了這個邏輯。

條件 1 (A)條件 2 (B)A and B
True (T)True (T)True (T)
True (T)False (F)False (F)
False (F)True (T)False (F)
False (F)False (F)False (F)

2. or (邏輯或)

  • 程式碼: print(nu > 3 or nu > 10)

  • 功能: 只要 任一個 條件成立 (True) 時,結果就是 True。

  • 對應真值表: 您的第二個表格 (稍作調整,使其標準化) 完美對應了這個邏輯。

條件 1 (A)條件 2 (B)A or B
True (T)True (T)True (T)
True (T)False (F)True (T)
False (F)True (T)True (T)
False (F)False (F)False (F)

3. not (邏輯非)

  • 程式碼: print(not (nu != 5))

  • 功能: 將條件的結果取反

    • nu != 5 (如果 nu 不等於 5) 的結果是 True 或 False。

    • not(...) 會將這個結果反轉。

  • 實際意義: not (nu != 5)nu == 5 的邏輯結果是完全相同的。

條件 (A)not A
True (T)False (F)
False (F)True (T)

測試範例

為了更好地理解結果,我們可以代入一個數字來測試:

假設您輸入 nu = 7

程式碼條件判斷邏輯運算輸出結果
nu > 3 and nu > 10(True) and (False)True and FalseFalse
nu > 3 or nu > 10(True) or (False)True or FalseTrue
not (nu != 5)not (True)not TrueFalse

💡 練習與進階

您已經掌握了最基礎且最重要的布林邏輯。如果您想繼續練習,可以嘗試將這些邏輯應用在更實際的條件判斷中,例如:

題目: 寫一個 Python 判斷式,檢查某個年份 year 是否為 "奧運年"(能被 4 整除)且 不是 21 世紀(年份必須小於 2000)。

您想嘗試用 and, or, not 組合來寫出這個判斷式嗎?



#輸入數字,判斷是奇數或偶數


#輸入月份數字,判斷是哪個季節 冬:12、1、2


#輸入年分,判斷是平年或閏年(4年1閏,百年為平,四百再閏,千年又閏) python



🔢 判斷奇數或偶數 (Odd or Even)

這個程式會接收一個數字輸入,並使用模數運算子 (%) 來判斷它除以 2 的餘數。如果餘數是 0,則是偶數;否則,是奇數。

Python
# 接收使用者輸入
try:
    number = int(input("請輸入一個整數:"))
except ValueError:
    print("輸入錯誤,請確保輸入的是一個有效的整數。")
else:
    # 使用 % 模數運算子
    # number % 2 == 0 表示數字除以 2 的餘數是 0
    if number % 2 == 0:
        print(f"數字 {number} 是 **偶數** (Even)。")
    else:
        print(f"數字 {number} 是 **奇數** (Odd)。")

🗓️ 判斷月份所屬季節 (Season by Month)

這個程式會接收一個月份數字 (1-12),然後使用 if/elif/else 結構來判斷它屬於哪一個季節。

定義:

  • 春季 (Spring): 3, 4, 5 月

  • 夏季 (Summer): 6, 7, 8 月

  • 秋季 (Autumn/Fall): 9, 10, 11 月

  • 冬季 (Winter): 12, 1, 2 月

Python
# 接收使用者輸入
try:
    month = int(input("請輸入月份數字 (1-12):"))
except ValueError:
    print("輸入錯誤,請確保輸入的是一個有效的月份數字。")
else:
    # 檢查月份是否在有效範圍內
    if 1 <= month <= 12:
        # 判斷季節
        if month in [3, 4, 5]:
            season = "春季 (Spring)"
        elif month in [6, 7, 8]:
            season = "夏季 (Summer)"
        elif month in [9, 10, 11]:
            season = "秋季 (Autumn/Fall)"
        else: # 12, 1, 2 月
            season = "冬季 (Winter)"
        
        print(f"月份 {month} 屬於 **{season}**。")
    else:
        print("輸入錯誤,月份數字必須介於 1 到 12 之間。")

📅 判斷平年或閏年 (Leap Year)

這個程式會接收一個年份,並根據複雜的閏年判斷規則來確定是平年還是閏年。

閏年判斷規則 (Gregorian Calendar):

  1. 能被 4 整除

  2. ,能被 100 整除的不是閏年(是平年)。

  3. ,能被 400 整除的又是閏年。

在 Python 中,這個邏輯可以寫成一個簡潔的布林表達式:

$$(Year\ \text{is divisible by}\ 400)\ \text{OR}\ ((Year\ \text{is divisible by}\ 4)\ \text{AND}\ (Year\ \text{is NOT divisible by}\ 100))$$

Python
# 接收使用者輸入
try:
    year = int(input("請輸入一個年份:"))
except ValueError:
    print("輸入錯誤,請確保輸入的是一個有效的年份。")
else:
    # 依據閏年規則判斷
    is_leap = False
    
    # 規則 1 & 3: 能被 400 整除的,一定是閏年
    if year % 400 == 0:
        is_leap = True
    # 規則 2: 能被 100 整除,但不能被 400 整除的,是平年 (所以不用設 is_leap = True)
    elif year % 100 == 0:
        is_leap = False
    # 規則 1: 能被 4 整除 (且排除掉上面的 100 倍數),是閏年
    elif year % 4 == 0:
        is_leap = True
    
    # 輸出結果
    if is_leap:
        print(f"年份 {year} 是 **閏年** (Leap Year)。")
    else:
        print(f"年份 {year} 是 **平年** (Common Year)。")

# 另一種更簡潔的寫法 (符合邏輯公式)
# if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
#     print(f"年份 {year} 是 閏年 (Leap Year)。")
# else:
#     print(f"年份 {year} 是 平年 (Common Year)。")

留言