Skip to content

Python基礎

Python Logo

輸出字串或整數

1
2
3
4
5
6
# 使用 print() 函式,可以放 2 個以上參數
print('Hello!')
print(123)
print('123' + '456')
print(123 + 456)
print(123, 456, 789)

輸入名字與輸出

1
2
3
4
# 執行 input() 後,等待接收使用者的一個輸入
# 任何輸入均為字串
name = input('Name: ')
print('Hi', name)

兩數加減乘除

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 任何輸入均為字串
# 必須以 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 位
print(f'{a} / {b} = {a / b:.2f}')

商數與餘數

1
2
3
4
5
6
a = int(input('a: '))
b = int(input('b: '))
# 商數
print(f'{a} // {b} = {a // b}')
# 餘數
print(f'{a} % {b} = {a % b}')

奇數與偶數

1
2
3
4
5
6
7
8
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, '是偶數')

因數判斷

1
2
3
4
5
6
7
8
9
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} 沒有因數關係')

倍數判斷

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# 使用 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)

指數與 2 的次方

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

26 個字母

1
2
3
4
5
6
7
8
9
alpha = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
# 使用 len() 計算字串中字母個數,並存到變數 n
n = len(alpha)

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

終極密碼

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
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('比答案小!')

指定範圍質數

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
# 列出 n 到 m 之間的所有質數
n = 2
m = 1000
primes = []
# 蒐集質數
for i in range(n, m+1):
    isprime = True
    stop = int(i**(1/2)) + 1
    for j in range(2, stop):
        if i % j == 0:
            isprime = False
            break
    if isprime:
        primes.append(i)
# 輸出質數,一列十個
for i in range(0, len(primes), 10):
    print(*primes[i:i+10])