Skip to content

Python 基礎語法結構

輸出字串或整數

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# 輸出字串或整數

# 輸出 1 個字串
print('Hello!')
# 輸出 1 個整數
print(123)
# 將 2 個字串合併後輸出
print('123' + '456')
# 將 2 個整數合併後輸出
print(123 + 456)
# 以空白分隔輸出 3 個整數
print(123, 456, 789)

輸入與輸出

1
2
3
4
5
# 輸入與輸出

# 任何輸入都是一行字串
name = input('名字: ')
print('嗨!', name)

整數加減乘除

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
# 整數加減乘除

# 任何輸入都是一行字串
# 必須用 int() 函式轉為整數,才可以執行算術運算
a = int(input('a: '))
b = int(input('b: '))
print(f'{a} + {b} = {a + b}')
print(f'{a} - {b} = {a - b}')
print(f'{a} * {b} = {a * b}')
print(f'{a} / {b} = {a / b}')

# 輸出格式設定 :.2f 表示保留至小數點後 2 位

# f-string
print(f'{a} / {b} = {a / b:.2f}')
# str.format()
print('{} / {} = {:.2f}'.format(a, b, a / b))
print('{0} / {1} = {2:.2f}'.format(a, b, a / b))

商數與餘數

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# 商數與餘數

a = int(input('a: '))
b = int(input('b: '))
# 商數
print(f'{a} // {b} = {a // b}')
print('{} // {} = {}'.format(a, b, a // b))
print('{0} // {1} = {2}'.format(a, b, a // b))
# 餘數
print(f'{a} % {b} = {a % b}')
print('{} % {} = {}'.format(a, b, a % b))
print('{0} % {1} = {2}'.format(a, b, a % b))

奇數與偶數(if)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 奇數與偶數(if)

n = int(input('n: '))
# 任何整數除以 2 的餘數,不是 0 就是 1
# 餘數為 0 表示 n 可被 2 整除,即 n 是偶數
# 餘數為 1 表示 n 是奇數
if n % 2 == 1:
    print(n, '是奇數')
elif n % 2 == 0:
    print(n, '是偶數')

因數判斷(if)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 因數判斷(if)

a = int(input('a: '))
b = int(input('b: '))
# 用餘數 % 運算的結果,判斷一個數是否為另一個數的因數
if a % b == 0:
    print(f'{b}{a} 的因數')
elif b % a == 0:
    print(f'{a}{b} 的因數')
else:
    print(f'{a}{b} 沒有因數關係')

倍數判斷(for)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# 倍數判斷(for)

# 使用 for 迴圈
# 輸出 a ~ b 之間的整數
# 判斷哪些數是 n 的倍數
a = int(input('a: '))
b = int(input('b: '))
n = int(input('n: '))

for i in range(a, b+1):
    if i % n == 0:
        print(f'{i}{n}{i // n} 倍數')
    else:
        print(i)

整數的次方(for)

1
2
3
4
5
6
# 整數的次方(for)

n = int(input('n: '))
p = int(input('p: '))
for i in range(p+1):
    print(f'{n}{i} 次方 = {n ** i}')

英文字母大小寫(for)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# 英文字母大小寫(for)

alpha = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
# 使用 len() 計算字串中字母個數,並存到變數 n
n = len(alpha)

for i in range(n):
    # 使用索引技巧 (indexing) 取出個別字母並逐列輸出
    # index 從 0 開始,因此 26 個字母的 index 是從 0 ~ 25
    # 使用 str.upper() 方法轉換大寫
    # 使用 str.lower() 方法轉換小寫
    print(i, alpha[i], alpha[i].lower())

任意數合計(while)

1
2
3
4
5
6
7
8
9
# 任意數合計(while)

total = 0
while True:
    n = int(input('輸入一個整數 (0 表示結束): '))
    if n == 0:
        break
    total += n
print(f'Total = {total}')

輸出某些數字(while)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# 輸出某些數字(while)

i = 0
while i < 20:
    i += 1
    if i % 3 == 0:
        i += 1
    elif i % 5 == 0:
        # 從這層迴圈開頭再執行一次
        continue
    elif i % 7 == 0:
        # 離開這層迴圈
        break
    print(i)

終極密碼(while)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 終極密碼(while)

import random

# 從 0 ~ 9999 隨機(亂數) 挑選一個整數
answer = random.randrange(10000)
print('答案:', answer)

# 無條件進入 while 迴圈
while True:
    prompt = '從 0 ~ 9999 猜 1 個整數 (-1 表示放棄): '
    guess = int(input(prompt))
    if guess == -1:
        # break 表示立即離開迴圈
        print('尚未答對就放棄!')
        break
    elif guess == answer:
        print('恭喜答對!')
        break
    elif guess > answer:
        print('比答案大!')
    elif guess < answer:
        print('比答案小!')