if 和 else 就是專門用於建構分支結構,elif 和 else 中也可以再建構新的分支
文中有三個簡單的範例,因為有五個練習,所以我直接前往練習,選了當中的 3 題。
練習1 - 英制單位與公制單位互換。
value = float(input('請輸入長度: '))
unit = input('請輸入單位: ')
if unit == 'in' or unit == '英寸': # 如果輸入 in 或 英吋
print('%f英寸 = %f厘米' % (value, value * 2.54))
elif unit == 'cm' or unit == '厘米': # 如果輸入 cm 或 厘米
print('%f厘米 = %f英寸' % (value, value / 2.54))
else: # 如果都不是以上的輸入
print('請輸入有效的單位')
練習2 - 擲骰子決定做什麼。
from random import randint # 隨機整數值
face = randint(1 , 6) # 隨機1 ~ 6
if face == 1:
result = '唱首歌'
elif face == 2:
result = '跳個舞'
elif face == 3:
result = '學狗叫'
elif face == 4:
result = '做俯臥撑'
elif face == 5:
result = '念繞口令'
else:
result = '講冷笑話'
print(result)
練習4 - 輸入三條邊長如果能構成三角形就計算周長和面積。
import math
a = float(input('a = '))
b = float(input('b = '))
c = float(input('c = '))
if a + b > c and a + c > b and b + c > a:
print('周長: %f ' % (a + b + c))
p = (a + b + c) / 2
area = math.sqrt(p * (p - a) * (p - b) * (p - c))
print('面積: %f ' % (area))
else:
print('不能構成三角形')
循環結構有兩種做法,一種是 for-in 循環,一種是 while 循環。
用 for 循環求 1~100 和
sum = 0
for x in range (101):
sum += x
print(sum)
用 for 循環求 1~100 的偶數和
sum = 0
for x in range (2,101,2):
sum += x
print(sum)
如果不知道具體循環次數的循環結構。while 循環通過一個能夠產生或轉換出 bool 值的表達式來控制循環,表達式的值為 True 循環繼續,表達式的值為 False 循環結束。
猜數字遊戲
import random
answer = random.randint(1 ,100) # 隨機產生數字做為答案
counter = 0
while True:
counter += 1
number = int(input('請輸入: '))
if number < answer:
print('大一點')
elif number > answer:
print('小一點')
else:
print('恭喜你猜對了! ')
break
print('你總共猜了%d次' %counter)
if counter > 7 :
print('你的智商餘額明顯不足')
練習1 - 輸入一個數判斷是不是質數。
from math import sqrt
num = int(input('請輸入一個正整數: '))
end = int(sqrt(num))
is_prime = True
for x in range (2 ,end + 1):
if num % x == 0 :
is_prime = False
break
if is_prime and num != 1:
print('%d 是質數' % num)
else:
print('%d 不是質數' % num)
練習2 - 輸入兩個正整數,計算最大公約數和最小公倍數。
x = int(input('x = '))
y = int(input('y = '))
if x > y: # 計算兩個數的公因數的範圍為較小的數到1以內的數
x, y = y, x # 將較小的數設為x
for factor in range (x, 0, -1):
if x % factor == 0 and y % factor == 0 :
print('%d和%d的最大公因數是%d' % (x, y, factor))
print('%d和%d的最小公倍數是%d' % (x, y, x * y // factor))
break
練習3 - 印出三角形圖案。
row = int(input('請输入行數: '))
for i in range (row):
for _ in range (i + 1):
print ('*', end='')
print ()
for i in range (row):
for j in range (row):
if j < row - i - 1:
print(' ', end='')
else:
print('*', end='')
print()
for i in range (row):
for _ in range (row - i - 1):
print(' ', end='')
for _ in range (2 * i + 1):
print('*', end='')
print()
今天算是基礎程式的一個小段落了,明天會是 5 題的自行練習,將會用前幾天所學來寫。