網頁

2025年9月30日 星期二

TQC+ Python 證照考題評量(四十九) - 眾數

 一、主題介紹:

若要從眾多數字中找出它們出現最多次的數字及次數,如果要花人力下去找就得花很多時間,而且數字愈多所花的時間就愈多,為了要提升效率則可以撰寫程式讓程式自動尋找,這樣就不論數字有多少就會很快找出來,這叫做眾數,可以應用在商業與行銷的找出最受歡迎的商品或口味、教育與測驗的分析考卷題目最常被選的答案、醫學與健康的找出病人最常見的症狀協助醫生做初步判斷、社會科學的問卷調查最常被選的選項、資訊科學的影像處理中可用於去雜訊..等,接下來我們來看 TQC+ 考題。

(1) 題目

請撰寫一程式,讓使用者輸入十個整數作為樣本數,輸出眾數(樣本中出現最多次的數字)及其出現的次數。

提示:假設樣本中只有一個眾數。

(2) 輸入輸出

#輸入

十個整數

#輸出

出現最多次的數字及其出現的次數

#範例輸入

34

18

22

32

18

29

30

38

42

18

#範例輸出

18

3



二、程式範例:


1. nums = []
2. for i in range(10):
3.     n = eval(input())
4.     nums.append(n)
5. counts = {}
6. for num in nums:
7.     counts[num] = counts.get(num,0) + 1
8. m = max(counts,key=counts.get)
9. f = counts[m]
10. print('')
11. print(m)
12. print(f)

#執行結果

34

18

22

32

18

29

30

38

42

18


18

3



三、程式解說:

第 1 行: 宣告空串列 nums。

第 2~4 行: 將輸入的 10 個整數存入串列 nums 中。

第 5 行: 宣告空字典 counts。

第 6~7 行: 使用迴圈 for 依串列 nums 中計數每個數字的次數存入字典中。

第 8 行: 使用內建函式 max() 找出字典中最多次數的數字,存入 m 變數中。

第 9 行: 列印輸出換行。

第 10 行: 列印輸出最多次數的數字。

第 11 行: 列印輸出次數。







2025年9月29日 星期一

TQC+ Python 證照考題評量(四十八) - 費氏數列

 一、主題介紹:

在學校曾學過的費氏數列是一個非常有名的數列,他的數字排列遵循一定的規則,定義為第一項等於 0、第二項等於 1、從第三項開始每一項等於前兩項的和,此數列可以應用於電腦科學的演算法設計和遞迴教學、金融領域的黃金分割比的技術分析、數學理論的組合及數論..等不勝枚舉,解下來我們就來看看 TQC+ 相關的考題。

(1) 題目

請撰寫一程式,計算費氏數列(Fibonacci numbers),使用者輸入一正整數num (num>=2),並將它傳遞給名為compute()的函式,此函式將輸出費氏數列前num個的數值。

提示:費氏數列的某一項數字是其前兩項的和,而且第0項為0,第一項為1,表示方式如下:

F0
F1
FFnFn2

(2) 輸入輸出

#輸入
一正整數num (num>=2)。

#輸出
輸出費氏數列前num個的數值。

#範例輸入
10

#範例輸出
0 1 1 2 3 5 8 13 21 34 



二、程式範例:


1. f_num = []
2. def compute(n):
3.     for i in range(n):
4.         if i==0:
5.             f_num.append(0)
6.         elif i==1:
7.             f_num.append(1)
8.         else:
9.             f_num.append(f_num[i-1] + f_num[i-2])
10.     for j in range(n):
11.         print(f_num[j],end=' ')
12.
13. n = eval(input())
14. compute(n)


#執行結果

10
0 1 1 2 3 5 8 13 21 34 



三、程式解說:

第 1 行: 宣告變數 f_num 為空串列。
第 2~11 行: 定義函式 compute() 可將使用者輸入的正整數帶入計算費氏數列,並列印輸出。
第 13 行: 將使用者輸入的鄭整數字串轉換為數值後存入 n 變數中。
第 14 行: 將 n 正整數帶入函式 compute() 列印輸出費氏數列。









2025年9月28日 星期日

TQC+ Python 證照考題評量(四十七) - 最簡分數

 一、主題介紹:

學校數學課曾經教過如何將分數化為最簡分數,有的用分子分母直接約分方法,有的取最大公因數的方法..等,不管使用哪種方法都可以化最簡分數取得正確答案,那也可以使用程式自動算出答案出來,怎麼做呢?我們來看看下面 TQC+ 考題的應用。

(1) 題目

請撰寫一程式,讓使用者輸入二個分數,分別是x/y和m/n(其中x、y、m、n皆為正整數),計算這兩個分數的和為p/q,接著將p和q傳遞給名為compute()函式,此函式回傳p和q的最大公因數(Greatest Common Divisor, GCD)。再將p和q各除以其最大公因數,最後輸出的結果必須以最簡分數表示。

(2) 輸入輸出

#輸入

二個分數

#輸出

兩個分數的和,並化為最簡分數列印輸出

#範例輸入

1,2

1,6

#範例輸出

1/2 + 1/6 = 2/3



二、程式範例:


1. import math
2.
3. def compute(p,q):
4.     return math.gcd(p,q)
5.
6. x,y = eval(input())
7. m,n = eval(input())
8. p = m*y + n*x
9. q = n*y
10. gcd = compute(p,q)
11. print(f"{x}/{y} + {m}/{n} = {int(p/gcd)}/{int(q/gcd)}")

#執行結果

1,2

1,6

1/2 + 1/6 = 2/3



三、程式解說:

第 1 行: 匯入 math 模組。

第 3~4 行: 定義函式 compute() 帶入兩數字參數,回傳最大公因數值。

第 6 行: 輸入的第 1 組分數,分別分子存於 x 變數、分母存於 y 變數中。

第 7 行: 輸入的第 2 組分數,分別分子存於 m 變數、分母存於 n 變數中。

第 8 行: 計算出兩個分數和的分子,將其存於 p 變數中。

第 9 行: 計算出兩個分數和的分母,將其存於 q 變數中。

第 10 行: 將分子 p 與分母 q 帶入函式 compute() 計算並回傳值存於 gcd 變數中。

第 11 行: 列印輸出 2 個分數和的最簡分數答案。






2025年9月27日 星期六

TQC+ Python 證照考題評量(四十六) - 最大公因數

 一、主題介紹:

學校裡數學課會上到最大公因數(GCD),這會可以應用在密碼學、分數化簡、圖形與幾何、排程與資源分配..等,可用到的地方還蠻多的,所以也是撰寫程式必學的技術,接下來看看下面的 TQC+ 考題怎麼做到。

(1) 題目

請撰寫一程式,讓使用者輸入兩個正整數x、y,並將x與y傳遞給名為compute()的函式,此函式回傳x和y的最大公因數。

(2) 輸入輸出

#輸入

兩個正整數

#輸出

最大公因數

#範例輸入

12,8

#範例輸出

4


二、程式範例:


1. import math
2.
3. def compute(a,b):
4.     return math.gcd(a,b)
5. a,b = eval(input())
6. print(compute(a,b))

#執行結果

12,8

4



三、程式解說:

第 1 行: 匯入套件 math

第 3~4 行: 定義函式 compute() 將兩個正整數帶入計算回傳最大公因數。

第 5 行: 將使用者輸入的兩個正整數字串轉換為數值後存入 a,b 變數中。

第 6 行: 將函式回傳的最大公因數列印輸出。





2025年9月26日 星期五

TQC+ Python 證照考題評量(四十五) - 質數

 一、主題介紹:

在學校數學課裡學過如何判斷質數,記得當時還讓很多人傷透腦筋,如果可以使用小程式讓他自動判斷是不是質數,那真的方便許多,學會了還可以應用在很多地方,如:密碼學應用的加密技術、程式遊戲的猜猜質數、或競賽題目的挑戰數字..等,所以接下來我們來練習 TQC+ 考題。

(1) 題目

請撰寫一程式,讓使用者輸入一個整數x,並將x傳遞給名為compute()的函式,此函式將回傳x是否為質數(Prime number)的布林值,接著再將判斷結果輸出。如輸入值為質數顯示【Prime】,否則顯示【Not Prime】。

(2) 輸入輸出

#輸入

一個整數

#輸出

質數顯示【Prime】,否則顯示【Not Prime】

#範例輸入一

3

#範例輸出一

Prime

#範例輸入二

6

#範例輸出二

Not Prime



二、程式範例:


1. def compute(n):
2.     if n<=1:
3.         return 0
4.     for i in range(2,n):
5.         if n%i==0:
6.             return 0
7.     return 1
8.
9. num = eval(input())
10. if compute(num):
11.     print("Prime")
12. else:
13.     print("Not Prime")

#執行結果

3

Prime

6

Not Prime



三、程式解說:

第 1~7 行: 定義函式 compute() 將輸入整數帶入判斷是否為質數,是則回傳 1 ,不是則回傳 0。

第 9 行: 將輸入得整數字串轉換為數值後存入 num 變數中。

第 10~13 行: 判斷函式的回傳值,如 1 則列印輸出 Prime ,如 0 則列印輸出 Not Prime 。






2025年9月25日 星期四

TQC+ Python 證照考題評量(四十四) - 一元二次方程式

 一、主題介紹:

在學校中會遇到數學課解答一元二次方程式的解,老師時常在課堂上講解得很輕鬆,學生們聽得矇矇懂懂的,所以會寫程式的人就可以透過程式讓它自動求出解答出來,就很方便許多,今天就透過 TQC+ 考題練習這方面的程式邏輯。

(1) 題目

請撰寫一程式,將使用者輸入的三個整數(代表一元二次方程式 

ax2+bx+c=0

的三個係數a、b、c)作為參數傳遞給一個名為compute()的函式,該函式回傳方程式的解,如無解則輸出【Your equation has no root.】

提示:
輸出有順序性
回傳方程式的解,無須考慮小數點位數

(2) 輸入輸出

#輸入

三個方程式係數 a、b、c

#輸出

兩個解,如無解則輸出【Your equation has no root.】

#範例輸入

2

-3

1

#範例輸出

1.0 0.5



二、程式範例:


1. def compute(a,b,c):
2.     i = pow(b,2)-4*a*c
3.     if i>=0:
4.         d1 = (-b + pow(i,0.5)) / (2*a)
5.         d2 = (-b - pow(i,0.5)) / (2*a)
6.     else:
7.         d1,d2 = 'no','no'
8.     return d1,d2
9.
10. a = eval(input())
11. b = eval(input())
12. c = eval(input())
13. ans1,ans2 = compute(a,b,c)
14. if ans1=='no' and ans2=='no':
15.     print("Your equation has no root.")
16. else:
17.     print(ans1,ans2)

#執行結果

2

-3

1

1.0 0.5



三、程式解說:

第 1~8 行: 定義函式 compute() 帶入參數 a、b、c 計算解答後回傳。

第 10~12 行: 將使用者輸入的三個參數分別存入 a、b、c 變數中。

第 13 行: 參數帶入函式中回傳兩個解答存入 ans1 與 ans2 變數中。

第 14~17 行: 判斷答案如果有解則列印輸出解答,若無解則列印輸出 Your equation has no root.





2025年9月24日 星期三

TQC+ Python 證照考題評量(四十三) - 依參數格式化輸出

 一、主題介紹:

由使用者任意輸入各項參數,再依據這些參數值列印輸出顯示的格式,可靈活應用各系統的參數設定中,剛好可以藉由下面的 TQC+ 考題來練習此絕活。

(1) 題目

請撰寫一程式,將使用者輸入的三個參數,變數名稱分別為a(代表字元character)、x(代表個數)、y(代表列數),作為參數傳遞給一個名為compute()的函式,該函式功能為:一列印出x個a字元,總共印出y列。

提示:輸出的每一個字元後方有一空格。

(2) 輸入輸出

#輸入

字元

行數

列數

#輸出

一列印出x個a字元,總共印出y列

#範例輸入

e

5

4

#範例輸出

e e e e e 

e e e e e

e e e e e

e e e e e


二、程式範例:


1. def compute(a,x,y):
2.     for i in range(y):
3.         for j in range(x):
4.             print(a,end=' ')
5.         print('')
6.
7. a = input()
8. x = eval(input())
9. y = eval(input())
10. compute(a,x,y)

#執行結果

e

5

4

e e e e e 

e e e e e

e e e e e

e e e e e


三、程式解說:

第 1~5 行: 定義函式 compute() 並帶入參數 a、x、y,使用 for 雙迴圈 列印輸出行列數的字元。

第 7 行: 將輸入的字元存入 a 變數。

第 8 行: 將輸入的行數字串轉換為數值後存入 x 變數。

第 9 行: 將輸入的列數字串轉換為數值後存入 y 變數。

第 10 行: 將 a、x、y 變數代數函式參數中執行輸出。





2025年9月23日 星期二

TQC+ Python 證照考題評量(四十二) - 得票數計算

 一、主題介紹:

每次只要到了選舉的時候都會使用人工計算投票數最高的人當選,這是非常費時且費力的事情,如果撰寫程式使用自動計票得票數最高者當選,應該是非常方便,我們看看如下 TQC+ 考題怎麼說。

(1) 題目

某次選舉有兩位候選人,分別是No.1: Nami、No.2: Chopper。請撰寫一程式,輸入五張選票,輸入值如為1即表示針對1號候選人投票;輸入值如為2即表示針對2號候選人投票,如輸入其他值則視為廢票。每次投完後需印出目前每位候選人的得票數,最後印出最高票者為當選人;如最終計算有相同的最高票數者或無法選出最高票者,顯示【=> No one won the election.】。

(2) 輸入輸出範例

輸入輸出會交雜如下,輸出的部分以粗體字表示。

2

Total votes of No.1: Nami = 0

Total votes of No.2: Chopper = 1

Total null votes = 0

1

Total votes of No.1: Nami = 1

Total votes of No.2: Chopper = 1

Total null votes = 0

8

Total votes of No.1: Nami = 1

Total votes of No.2: Chopper = 1

Total null votes = 1

2

Total votes of No.1: Nami = 1

Total votes of No.2: Chopper = 2

Total null votes = 1

2

Total votes of No.1: Nami = 1

Total votes of No.2: Chopper = 3

Total null votes = 1

=> No.2 Chopper won the election.



二、程式範例:


1. a = [0 for i in range(3)]
2. for i in range(5):
3.     op = eval(input())
 4.   if op==1:
5.         a[0] += 1
6.     elif op==2:
7.         a[1] += 1
8.     else:
9.         a[2] += 1
10.     print("\033[1m"+"Total votes of No.1: Nami ="+"\033[0m",a[0])
11.     print("\033[1m"+"Total votes of No.2: Chopper ="+"\033[0m",a[1])
12.     print("\033[1m"+"Total null votes ="+"\033[0m",a[2])
13. result = a.index(max(a)) + 1
14. if a[0]!=a[1] and result==1:
15.     print("\033[1m"+"=> No.1 Nami won the election."+"\033[0m")
16. elif a[0]!=a[1] and result==2:
17.     print("\033[1m"+"=> No.2 Chopper won the election."+"\033[0m")
18. else:
19.     print("\033[1m"+"==> No one won the election."+"\033[0m")

#執行結果

2

Total votes of No.1: Nami = 0

Total votes of No.2: Chopper = 1

Total null votes = 0

1

Total votes of No.1: Nami = 1

Total votes of No.2: Chopper = 1

Total null votes = 0

8

Total votes of No.1: Nami = 1

Total votes of No.2: Chopper = 1

Total null votes = 1

2

Total votes of No.1: Nami = 1

Total votes of No.2: Chopper = 2

Total null votes = 1

2

Total votes of No.1: Nami = 1

Total votes of No.2: Chopper = 3

Total null votes = 1

=> No.2 Chopper won the election.



三、程式解說:

第 1 行: 建立串列初始化為 0。

第 2~12 行: 使用 for 循環迴圈計數 5 次投票紀錄,並列印輸出哪位得票者。

第 13 行: 取得串列數據資料中哪個得票數最高,並存入 result 變數中。

第 14~19 行: 列印輸出投票結果哪位得票最高者,如相同的最高票數者或無法選出最高票者,顯示【=> No one won the election.】。

( 其中 \033[1m = 開啟粗體,\033[0m = 重設格式 )





2025年9月22日 星期一

TQC+ Python 證照考題評量(四十一) - 不定數迴圈分數等級

一、主題介紹:

學生成績的等級時常於老師評分中出現,如果能透過撰寫程式讓它自動化產生,將省去很多人為的時間,如能再搭配資料庫的儲存,也能有效地保存評分資料,隨時隨地想查詢就可以查詢得到,非常方便,來看看如下 TQC+ 考題。

(1) 題目

請撰寫一程式,以不定數迴圈的方式輸入一個正整數(代表分數),之後根據以下分數與GPA的對照表,印出其所對應的GPA。假設此不定數迴圈輸入-9999則會結束此迴圈。標準如下表所示:

分 數    GPA
90 ~ 100    A
80 ~ 89      B
70 ~ 79      C
60 ~ 69      D
0 ~ 59        E

(2) 輸入輸出

#輸入

輸入一個正整數(代表分數),直到輸入-9999則會結束此迴圈。

#輸出

印出其所對應的GPA。

#範例輸入輸出

75

C

39

E

100

A

85

B

65

D

-9999


二、程式範例:


1. while True:
2.     num = eval(input())
3.     if num>=90 and num<=100:
4.         print("A")
5.     elif num>=80 and num<=89:
6.         print("B")
7.     elif num>=70 and num<=79:
8.         print("C")
9.     elif num>=60 and num<=69:
10.       print("D")
11.     elif num>=0 and num<=59:
12.         print("E")
13.     elif num == -9999:
14.         break

#執行結果

75

C

39

E

100

A

85

B

65

D

-9999


三、程式解說:

第 1 行: 使用 while 建立無窮迴圈。

第 2 行: 將輸入的分數字串轉換為數值後存入 num 變數中。

第 3~4 行: 判斷 num 是否為 90 ~ 100 間,如是列印輸出 A,如否往下執行。

第 5~6 行: 判斷 num 是否為 80 ~ 89 間,如是列印輸出 B,如否往下執行。

第 3~4 行: 判斷 num 是否為 70 ~ 79 間,如是列印輸出 C,如否往下執行。

第 3~4 行: 判斷 num 是否為 60 ~ 69 間,如是列印輸出 D,如否往下執行。

第 3~4 行: 判斷 num 是否為 0 ~ 59 間,如是列印輸出 E,如否往下執行。

第 3~4 行: 判斷 num 是否為 -9999,如是則跳出無窮迴圈。




2025年9月21日 星期日

TQC+ Python 證照考題評量(四十) - 迴圈公式計算

 一、主題介紹:

於數學式計算常遇到很難用紙、筆、或一般計算機算出答案,這時候很多人就會拿出工程用計算機來使用,如果可以用寫程式的方式來計算出結果,這也算是一種可行的方法,而且會比工程用計算機來得好用,因為如果要重覆計算不同的算式,它可以省去重複按壓輸入複雜的數學公式,讓人方便許多,接下來我們來看看下面 TQC+ 的考題題目。

(1) 題目

請使用迴圈敘述撰寫一程式,讓使用者輸入正整數n (1 < n),計算以下公式的總和並顯示結果:


提示:輸出結果至小數點後四位。

(2) 輸入輸出

#輸入

正整數n (1 < n)

#輸出

以上公式的總和

#範例輸入

8

#範例輸出 ( 小數點後四位 )

1.8284



二、程式範例:


1. n = eval(input())
2. s = 0
3. for i in range(2,n+1):
4.     s = s + 1 / (pow(i-1,0.5)+pow(i,0.5))
5. print(f"{s:.4f}")

#執行結果

8

1.8284



三、程式解說:

第 1 行: 將輸入的數值字串轉換為數值後存入 n 變數。

第 2 行: 初始化 s 變數為 0。

第 3~4 行: 使用迴圈 for 依題目公式計算結果。

第 5 行: 將結果列印輸出至小數點後四位。








2025年9月20日 星期六

TQC+ Python 證照考題評量(三十九) - 存款總額

 一、主題介紹:

在生活中常常將錢存在銀行,想知道每年可以得到本利和為多少,如能可以撰寫一程式讓計算自動化,就減少了還要記憶公式、或按按計算機算算複雜的數學式子,今天就來做做相關議題的 TQC+ 考題。

(1) 題目

請使用迴圈敘述撰寫一程式,提示使用者輸入金額(如10,000)、年收益率(如5.75),以及經過的月份數(如5),接著顯示每個月的存款總額。 

提示:四捨五入,輸出浮點數到小數點後第二位。
舉例:
假設您存款$10,000,年收益為5.75%。
過了一個月,存款會是:10000 + 10000 * 5.75 / 1200 = 10047.92
過了兩個月,存款會是:10047.92 + 10047.92 * 5.75 / 1200 = 10096.06
過了三個月,存款將是:10096.06 + 10096.06 * 5.75 / 1200 = 10144.44
以此類推。

(2) 輸入輸出

#輸入

金額(如10,000)

年收益率(如5.75)

以及經過的月份數(如5)

#輸出

每個月的存款總額

#範例輸入

50000

1.3

5

#範例輸出

Month    Amount     

    1        50054.17

    2        50108.39

    3        50162.68

    4        50217.02

    5        50271.42



二、程式範例:


1. def money(P,I):
2.     t = P * ( 1 + I / 1200 )
3.     return t
4.
5. p = eval(input())
6. i = eval(input())
7. m = eval(input())
8. print(f"{'Month':^5}{'Amount':^15}")
9. for y in range(1,m+1):
10.     p = money(p,i)
11.     print(f"{y:^5}{p:^15.2f}")

#執行結果

50000

1.3

5

Month    Amount     

    1        50054.17

    2        50108.39

    3        50162.68

    4        50217.02

    5        50271.42



三、程式解說:

第 1~3 行: 定義函式 money() 將本金 P 及 年利率 I 帶入計算一個月的本利和,並回傳計算結果。

第 5 行: 將輸入的本金字串轉換為數值後存入 p 變數。

第 6 行: 將輸入的年利率字串轉換為數值後存入 i 變數。

第 7 行: 將輸入的月數字串轉換為數值後存入 m 變數。

第 8 行: 列印輸出標題。

第 9~11 行: 列印輸出 m 個月份的每月本利和。






2025年9月19日 星期五

TQC+ Python 證照考題評量(三十八) - 正 n 邊形面積計算

 一、主題介紹:

在學校學習數學的時候常遇到要計算面積,即使知道公式也被算式打敗不知道如何帶入求出答案,如果有帶入公式自動算出答案的程式幫忙計算,那一定方便極了,而且還可以重複輸入重複算結果,就排除了死記數學公式的困擾,如下 TQC+ Python 考題親自來練習看看。

(1) 題目

請撰寫一程式,讓使用者輸入兩個正數n、s,代表正n邊形之邊長為s,計算並輸出此正n邊形之面積(Area)。

提示1:建議使用import math模組的math.powmath.tan
提示2:正n邊形面積的公式如下:

Area=(ns2)/(4tan(pi/n)) 

提示3:輸出浮點數到小數點後第四位

(2) 輸入輸出

#輸入

正數 n、s

#輸出

正 n 邊形面積

#範例輸入

8

6

#範例輸出

Area = 173.8234



二、程式範例:


1. import math
2.
3. pi = 3.14159
4. def area(n,s):
5.     A = (n*math.pow(s,2)) / (4*math.tan(pi/n))
6.     return A
7.
8. n = eval(input())
9. s = eval(input())
10. a = area(n,s)
11. print(f"Area = {a:.4f}")

#執行結果

8

6

Area = 173.8235



三、程式解說:

第 1 行: 匯入 math 模組。

第 3 行: 定義 pi 等於固定數值 3.14159。

第 4~6 行: 使用函式帶入邊數 n 及邊長 s 參數,將其帶入面積公式回傳計算結果。

第 8 行: 將輸入的邊數字串轉換為數值後存入 n 變數。

第 9 行: 將數入的邊長字串轉換為數值後存入 s 變數。

第 10 行: 帶入 n、s 參數至函式 area() 中計算面積,並將回傳數值存入 a 變數。

第 11 行: 列印輸出面積數值至浮點小數後第 4 位。







2025年9月18日 星期四

TQC+ Python 證照考題評量(三十七) - 字串資料取代

 一、主題介紹:

修改文字檔 txt 內容也是時常在撰寫程式時需要用得到的,他會應用在資料庫的讀取與儲存,所以我們需要熟悉它的使用方法,以下為 TQC+ 題目,藉此機會看看自己學習了多少。

(1) 題目

請撰寫一程式,要求使用者輸入檔名data.txt、字串s1和字串s2。程式將檔案中的字串s1以s2取代之。

(2) 輸入輸出

#輸入

輸入data.txt及兩個字串(分別為s1、s2,字串s1被s2取代)

#輸出

輸出檔案中的內容
輸出取代指定字串後的檔案內容

#範例輸入

data.txt

pen

sneakers

#範例輸出

=== Before the replacement

watch shoes skirt

pen trunks pants

=== After the replacement

watch shoes skirt

sneakers trunks pants

#取代前檔案內容 data.txt

watch shoes skirt

pen trunks pants

#取代後檔案內容 data.txt

watch shoes skirt

sneakers trunks pants


二、程式範例:


1. fn = input()
2. s1 = input()
3. s2 = input()
4. with open(fn,'r',encoding='utf-8') as fobj:
5.     s = fobj.read()
6.     print("=== Before the replacement")
7.     print(s)
8. s = s.replace(s1,s2)
9. print("=== After the replacement")
10. print(s)
11. with open(fn,'w',encoding='utf-8') as fobj:
12.     fobj.write(s)

#執行結果

data.txt

pen

sneakers

=== Before the replacement

watch shoes skirt

pen trunks pants

=== After the replacement

watch shoes skirt

sneakers trunks pants



三、程式解說:

第 1 行: 將輸入的檔名儲存於 fn 變數中。

第 2 行: 將輸入的第 1 組字串儲存於 s1 變數中。

第 3 行: 將輸入的第 2 組字串儲存於 s2 變數中。

第 4~5 行: 使用 with~as~ 開啟檔案物件並讀取資料儲存於 s 變數中。

第 6~7 行: 列印輸出取代前的檔案資料。

第 8 行: 將 s 變數中的 s1 單字以 s2 取代,並儲存於原 s 變數中。

第 9~10 行: 列印輸出取代後的檔案資料。

第 11~12 行: 將取代後的 s 資料寫入檔案中。









2025年9月17日 星期三

TQC+ Python 證照考題評量(三十六) - 偶數索引值加總

 一、主題介紹:

串列是一個有順序、可變動的資料結構,其在程式設計的可應用地方非常地廣泛,如:資料的儲存與管理、搜尋與篩選、排序與統計、資料的處理、佇列與堆疊的模擬、學生管理系統、購物車系統、數據分析、程式的輸入與輸出..等,簡單的來說串列是一個空間,可以彈性的暫時存放、修改、操作資料的地方,它的應用可以從基礎的排序到複雜的系統設計都可以看的到蹤跡,我們透購如下 TQC+ 考題來學習此應用。

(1) 題目

請撰寫一程式,利用一維串列存放使用者輸入的12個正整數(範圍1~99)。顯示這些數字,接著將串列索引為偶數的數字相加並輸出結果。提示:輸出每一個數字欄寬設定為3,每3個一列,靠右對齊。

(2) 輸入輸出

#輸入

12 個正整數

#輸出

輸出每一個數字欄寬設定為3,每3個一列,靠右對齊,將串列索引為偶數的數字相加並輸出結果。

#範例輸入

56

45

43

22

3

1

39

20

93

18

44

83

  56 45 43

  22   3   1

  39 20 93

  18 44 83

278 



二、程式範例:


1. datas = []
2. sum = 0
3. for i in range(12):
4.     a = eval(input())
5.     datas.append(a)
6. for j in range(12):
7.     print(f"{datas[j]:>3}",end='')
8.     if (j+1)%3==0:
9.         print('')
10.     if j%2==0:
11.         sum += datas[j]
12. print(sum)

#執行結果

56

45

43

22

3

1

39

20

93

18

44

83

  56 45 43

  22   3   1

  39 20 93

  18 44 83

278


三、程式解說:

第 1 行: 初始設定空串列 datas。

第 2 行: 初始設定 sum 變數為 0。

第 3~5 行: 將使用者輸入的 12 個數值附加到串列 datas 中。

第 6~7 行: 將串列資料依題目規定欄寬3、每3個一列、靠右對其並列印輸出。

第 8~9 行: 判斷每3個串列資料就執行換行。

第 10~11 行: 判斷如果串列索引為偶數的數字,將其加總存入變數 sum。

第 12 行: 列印輸出加總的數值。






2025年9月16日 星期二

TQC+ Python 證照考題評量(三十五) - 單字次數計算

 一、主題介紹:

在一篇英文文章中找尋所有單字的出現字數,這是一個基礎的文字處理、詞彙頻率分析程式,也可以擴充成專業的文本分析工具,或則是在關鍵字的檢查、教育應用、檔案審核、...等都有相關的應用值得我們深入學習,接下來透過以下 TQC+ 的題目來學習基礎的程式功能。

(1) 題目

請撰寫一程式,要求使用者輸入檔名 read.txt,以及檔案中某單字出現的次數。輸出符合次數的單字,並依單字的第一個字母大小排序。( 單字的判斷以空白隔開即可 )

(2) 輸入輸出

#輸入

讀取 read.txt 的內容,以及檔案中某單字出現的次數。

#輸出

輸出符合次數的單字,並依單字的第一字母大小排序。

#範例輸入

read.txt

3

#範例輸出

a

is

programming

# 檔案內容 read.txt

What is Python language
Python is a widely used high level general purpose interpreted dynamic programming language
Its design philosophy emphasizes code readability and its syntax allows programmers to express concepts in fewer lines of code than possible in languages such as C or Java
Python supports multiple programming paradigms including object oriented imperative and functional programming or procedural styles
It features a dynamic type system and automatic memory management and has a large and comprehensive standard library
The best way we learn anything is by practice and exercise questions We have started this section for those beginner to intermediate who are familiar with Python



二、程式範例:


1. fn = input()
2. num = eval(input())
3. fobj = open(fn,'r')
4. a = fobj.read()
5. b = a.split()
6. c = sorted(set(b))
7. for w in c:
8.     if b.count(w)==num:
9.         print(w)
10. fobj.close()

#執行結果

read.txt

3

a

is

programming



三、程式解說:

第 1 行: 輸入檔案名稱存入 fn 變數。

第 2 行: 輸入單字出現的次數字串轉換為數值後存入 num 變數中。

第 3 行: 建立開啟檔案讀取物件。

第 4 行: 讀取檔案物件內容,以字串格式存入 a 中。

第 5 行: 以空白分隔將每個英文單字轉換為串列資料存入 b 中。

第 6 行: 將 b 串列以 set() 集合過濾重複單字,再以 sort() 排序後存入 c 中。

第 7~9 行: 以迴圈 for、條件if 將 c 中的每個單字過濾是否有使用者輸入的單字重複數字,如有

則列印輸出此單字。

第 10 行: 最後關閉檔案物件。







2025年9月15日 星期一

TQC+ Python 證照考題評量(三十四) - 詳細資料顯示

 一、主題介紹:

讀取文字檔 txt 的相關應用很多,如:儲存資料、讀取資料..等,若要將資料永久保存,最基本的方法就是存到文字檔中,所以今天就來透過如下的 TQC+ 證照考題訓練怎麼讀取文字檔。

(1) 題目

撰寫一程式,要求使用者輸入檔名 read.txt,顯示該檔案的行數、單字數(簡單起見,單字以空白隔開即可,忽略其它標點符號)以及字元數(不含空白)。

(2) 輸入輸出

#輸入

文字檔名稱 read.txt

#輸出

顯示檔案的行數

單字數

字元數 ( 不含空白 )

#範例輸入

read.txt

#範例輸出

6 line(s)

102 word(s)

614 character(s)

#文字檔內容 ( read.txt )

What is Python language?

Python is a widely used high-level, general-purpose, interpreted, dynamic programming language.

Its design philosophy emphasizes code readability, and its syntax allows programmers to express concepts in fewer lines of code than possible in languages such as C++ or Java.

Python supports multiple programming paradigms, including object-oriented, imperative and functional programming or procedural styles.

It features a dynamic type system and automatic memory management and has a large and comprehensive standard library.

The best way we learn anything is by practice and exercise questions. We have started this section for those (beginner to intermediate) who are familiar with Python.



二、程式範例:


1. line_num = word_num = char_num = 0
2. filename = input()
3. with open(filename,'r') as fobj:
4.     for line in fobj:
5.         line_num += 1
6.         word_num += len(line.split())
7.         char_num += sum(len(s) for s in line.split())
8. print(f"{line_num} line(s)")
9. print(f"{word_num} word(s)")
10. print(f"{char_num} character(s)")

#執行結果

read.txt

6 line(s)

102 word(s)

614 character(s)



三、程式解說:

第 1 行: 初始化變數。

第 2 行: 將使用者輸入的檔名存入 filename 中。

第 3 行: 使用 with~as~ 開啟檔案建立讀取物件。

第 4~7 行: 使用 for~ 迴圈讀取行數、單字數、字元數,並存入變數中。

第 8~10 行: 列印輸出顯示行數、單字數、字元數。





TQC+ Python 證照考題評量(五十四) - 平均溫度

 一、主題介紹: 資料庫中的一堆數據資料,時常需要這些資料的平均值、最大值、與最小值,作為分析資料的依據,如能透過寫程式讓它們自動化就能增加效率,就來看看今天的 TQC+ 考題的練習。 (1) 題目 請撰寫一程式,讓使用者輸入四週各三天的溫度,接著計算並輸出這四週的平均溫度及最高...