Chapter 3 條件敘述 if

Python的條件敘述共有三類:  if,  if … else,  if … elif ….elif … else

1. if 語法

ans = input('Do you want some cookies?')
if ans == "y":
print ("Yes, I want some cookies.")
print("and you?")
print("over")
ans = input('Do you want some cookies?').upper()
# ans = ans.upper()
if ans == "Y":
print ("Yes, I want some cookies.")
print("and you?")
print("over")
PS:1.請比較上面兩段程式的不同。
2.注意縮排

2. if … else 語法

if conditionA:
     statement A
else:
     statement B

3. if … elif …. else 語法

if conditionA:
     statement A
elif conditionB:
     statement B
elif conditionC:
     statement C
 else:
     statement D

a = eval(input('請輸入成績: '))
if a >= 60:
b = 'pass'
else:
b = 'fail'
print('成績', a , '分', b )
# 以下是巣狀if 的架構範例, 請注意每一行的縮排位置所代表的意義。
num = eval(input('Enter an integer: '))
if num >= 60:
if num >= 90:
print('成績優異')
else:
print('還不錯')
else:
print('不及格')

print('over')
# 以下兩段程式都是判斷某數是否是 3 的倍數或 5 的倍數。
# 兩段程式有何不同????
# 哪一段才是最正確的寫法??
num = eval(input('Enter an integer: '))
if num % 3 == 0:
print(num, '是 3 的倍數')
if num % 5 == 0:
print(num, '是 5 的倍數')
if num % 3 !=0 and num % 5 != 0:
print(num, '不是 3 的倍數, 也不是 5 的倍數')
print('over')
num = eval(input('Enter an integer: '))
if num % 3 == 0:
print(num, '是 3 的倍數')
elif num % 5 == 0:
print(num, '是 5 的倍數')
else:
print(num, '不是 3 的倍數, 也不是 5 的倍數')
print('over')
# 以下程式是判斷座標的象限。
x,y=eval(input("input x,y:")) #數字請用逗號『,』隔開,例如輸入 2,-3
if x>0 :
if y > 0:
b = "I"
else:
b = "IV"
else:
if y > 0:
b = "II"
else:
b = "III"
print(b)

3. Case Study 個案研究

以下的程式可以藉由使用者選擇生日(幾號)是否出現在五個集合中,電腦立刻可以算出正確答案。

原理: 1~31的數字都可以由2的次方組合而成, 如 11 = pow(2,3)+pow(2,1)+pow(2,0),  則 11 會出現在 set1+set2+set4

day = 0
name = input('Enter your name: ')
hintDay1 = 'set1:\n' + \
' 1 3 5 7 9\n' + \
'11 13 15 17 19\n' + \
'21 23 25 27 29\n' + \
'31\n\n' + \
'Is your birthday in set1 (y/n)? '

ans1 = input(hintDay1)
if ans1 == 'y':
day += 1

hintDay2 = 'set2:\n' + \
' 2 3 6 7 10\n' + \
'11 14 15 18 19\n' + \
'22 23 26 27 30\n' + \
'31\n\n' + \
'Is your birthday in set2 (y/n)? '

ans2 = input(hintDay2)
if ans2 == 'y':
day += 2

hintDay3 = 'set3:\n' + \
' 4 5 6 7 12\n' + \
'13 14 15 20 21\n' + \
'22 23 28 29 30\n' + \
'31\n\n' + \
'Is your birthday in set3 (y/n)? '

ans3 = input(hintDay3)
if ans3 == 'y':
day += 4

hintDay4 = 'set4:\n' + \
' 8 9 10 11 12\n' + \
'13 14 15 24 25\n' + \
'26 27 28 29 30\n' + \
'31\n\n' + \
'Is your birthday in set4 (y/n)? '

ans4 = input(hintDay4)
if ans4 == 'y':
day += 8

hintDay5 = 'set5:\n' + \
'16 17 18 19 20\n' + \
'21 22 23 24 25\n' + \
'26 27 28 29 30\n' + \
'31\n\n' + \
'Is your birthday in set5 (y/n)? '

ans5 = input(hintDay5)
if ans5 == 'y':
day += 16

print('\nHi, %s' % (name))
print('your birthday is %d' % (day))