網頁

2025年10月6日 星期一

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

 一、主題介紹:

資料庫中的一堆數據資料,時常需要這些資料的平均值、最大值、與最小值,作為分析資料的依據,如能透過寫程式讓它們自動化就能增加效率,就來看看今天的 TQC+ 考題的練習。

(1) 題目

請撰寫一程式,讓使用者輸入四週各三天的溫度,接著計算並輸出這四週的平均溫度及最高、最低溫度。

提示1:平均溫度輸出到小數點後第二位。
提示2:最高溫度及最低溫度的輸出,如為31時,則輸出31,如為31.1時,則輸出31.1。

(2) 輸入輸出

#輸入

四週各三天的溫度。

#輸出

四週的平均溫度及最高、最低溫度。

#範例輸入

Week 1

Day 1:23.1

Day 2:24

Day 3:23.5

Week 2

Day 1:32

Day 2:33

Day 3:35.3

Week 3

Day 1:29

Day 2:30

Day 3:26

Week 4

Day 1:27.6

Day 2:25

Day 3:28.8

#範例輸出

Average: 28.11

Highest: 35.3

Lowest: 23.1



二、程式範例:


1. temps = ['' for _ in range(12)]
2. sum = 0
3. i = 0
4. for w in range(4):
5.     print(f"Week {w+1}")
6.     for d in range(3):
7.         print(f"Day {d+1}:",end='')
8.         temps[i] = eval(input())
9.         sum += temps[i]
10.         i += 1
11. print(f"Average: {sum/len(temps):.2f}")
12. print(f"Highest: {max(temps)}")
13. print(f"Lowest: {min(temps)}")

#執行結果

Week 1

Day 1:23.1

Day 2:24

Day 3:23.5

Week 2

Day 1:32

Day 2:33

Day 3:35.3

Week 3

Day 1:29

Day 2:30

Day 3:26

Week 4

Day 1:27.6

Day 2:25

Day 3:28.8

Average: 28.11

Highest: 35.3

Lowest: 23.1



三、程式解說:

第 1 行: 宣告空串列 temps。

第 2~3 行: 宣告變數初始化 sum=0、i=0。

第 4~10 行: 使用雙迴圈 for 將使用者輸入的 4 週 3 日的溫度字串轉換為數值後存入串列中。

第 11 行: 列印輸出平均值至小數點第 2 位。

第 12 行: 列印輸出最大值。

第 13 行: 列印輸出最小值。





2025年10月5日 星期日

TQC+ Python 證照考題評量(五十三) - 矩陣相加

 一、主題介紹:

數學課程內容中的矩陣相加,時常會應用在學生成績的統計、公司銷售季及年度業績統計..等中,所以如果懂得使用矩陣相加程式,就可以讓它自動化呈現所需要的報表,再也不需要花費過多時間做人工計算,接下來我們來看看 TQC+ 考題怎麼說。

(1) 題目

請撰寫一程式,讓使用者建立兩個2*2的矩陣,其內容為從鍵盤輸入的整數,接著輸出這兩個矩陣的內容以及它們相加的結果。

(2) 輸入輸出

#輸入

兩個2*2矩陣整數資料

#輸出

兩個矩陣內容及相加的結果

#範例輸入

Enter matrix 1:

[1, 1]: 3

[1, 2]: 5

[2, 1]: 7

[2, 2]: 5

Enter matrix 2:

[1, 1]: 6

[1, 2]: 9

[2, 1]: 8

[2, 2]: 3

#範例輸出

Matrix 1:

3 5

7 5

Matrix 2:

6 9

8 3

Sum of Matrices:

9 14

15 8



二、程式範例:


1. nums1 = [['' for _ in range(2)] for _ in range(2)]
2. nums2 = [['' for _ in range(2)] for _ in range(2)]
3. sums = [['' for _ in range(2)] for _ in range(2)]
4. for i in range(2):
5.     if i==0: A=nums1
6.     elif i==1: A=nums2
7.     print(f"Enter matrix {i+1}:")
8.     for j in range(2):
9.         for k in range(2):
10.             print(f"[{j+1}, {k+1}]: ",end='')
11.             A[j][k] = eval(input())
12. for j in range(2):
13.     for k in range(2):
14.         sums[j][k] = nums1[j][k] + nums2[j][k]
15. print("Matrix 1:")
16. for i in range(2):
17.     print(f"{nums1[i][0]} {nums1[i][1]}")
18. print("Matrix 2:")
19. for i in range(2):
20.     print(f"{nums2[i][0]} {nums2[i][1]}")
21. print("Sum of Matrices:")
22. for i in range(2):
23.     print(f"{sums[i][0]} {sums[i][1]}")

#執行結果

Enter matrix 1:

[1, 1]: 3

[1, 2]: 5

[2, 1]: 7

[2, 2]: 5

Enter matrix 2:

[1, 1]: 6

[1, 2]: 9

[2, 1]: 8

[2, 2]: 3

Matrix 1:

3 5

7 5

Matrix 2:

6 9

8 3

Sum of Matrices:

9 14

15 8



三、程式解說:

第 1~3 行: 宣告三個空串列變數 nums1、nums2、sums。

第 4~11 行: 使用三迴圈 for 將使用者輸入的整數字串轉換為數值後存入串列中。

第 12~14 行: 將兩個串列 nums1、nums2 相加後存入串列 sums 中。

第 15~17 行: 列印輸出第 1 組輸入的 nums1 矩陣資料。

第 18~20 行: 列印輸出第 2 組輸入的 nums2 矩陣資料。

第 21~23 行: 列印輸出加總的 sums 矩陣資料。







2025年10月4日 星期六

TQC+ Python 證照考題評量(五十二) - 最大最小值索引

 一、主題介紹:

在一堆數值中找尋最大值與最小值的位置,不論是資料分析的股價最高與最低的時間點、演算法設計的排序或搜尋、影像處理的圖片亮度最高與最低像素點位置、感測器數據處理的偵測溫度最高或最低的時間區間..等很多地方的應用都用得到,今天就來學習底下的 TQC+ 考題練習。

(1) 題目

請撰寫一程式,讓使用者建立一個3*3的矩陣,其內容為從鍵盤輸入的整數(不重複),接著輸出矩陣最大值與最小值的索引。

(2) 輸入輸出

#輸入

9 個不重複的整數

#輸出

矩陣最大值與最小值的索引

#範例輸入

6

4

8

39

12

3

-3

49

33

#範例輸出

Index of the largest number 49 is (2, 1)

Index of the smallest number -3 is (2, 0)



二、程式範例:


1. nums = [ [ '' for _ in range(3)] for _ in range(3)]
2. for i in range(3):
3.     for j in range(3):
4.         nums[i][j] = eval(input())
5.         if i==0 and j==0:            
6.             minnum = nums[i][j]
7.             maxnum = nums[i][j]
8.         if nums[i][j]>maxnum:
9.             max_x = i
10.             max_y = j
11.             maxnum = nums[i][j]
12.         elif nums[i][j]<minnum:
13.             min_x = i
14.             min_y = j          
15.             minnum = nums[i][j]
16. print(f"Index of the largest number {nums[max_x][max_y]} is ({max_x}, {max_y})")
17. print(f"Index of the smallest number {nums[min_x][min_y]} is ({min_x}, {min_y})")

#執行結果

6

4

8

39

12

3

-3

49

33

Index of the largest number 49 is (2, 1)

Index of the smallest number -3 is (2, 0)


三、程式解說:

第 1 行: 宣告 3x3 空串列。

第 2~15 行: 使用雙迴圈將輸入數值字串轉換為數值後儲存於串列中,並比較找出最大值與最小值,及其索引位置。

第 16 行: 列印輸出最大值及其位置索引值。

第 17 行: 列印輸出最小值及其位置索引值。





2025年10月2日 星期四

TQC+ Python 證照考題評量(五十一) - 成績計算

 一、主題介紹:

學校裡的老師時常遇到需要計算學生的成績、平均及排名,而且重複做此工作,既繁雜且花費時間,如果能夠透過程式讓重複的工作自動化,那真的可以改善很多,接下來就讓我們透過以下的 TQC+ 考題來學習怎麼讓成績計算自動化。

(1) 題目

請撰寫一程式,讓使用者輸入三位學生各五筆成績,接著再計算並輸出每位學生的總分及平均分數。

提示:平均分數輸出到小數點後第二位

(2) 輸入輸出

#輸入

三位學生各五筆成績

#輸出

每位學生的總分及平均分數

#範例輸入

The 1st student:

78

89

88

70

60

The 2st student:

90

78

66

68

78

The 3st student:

69

97

70

89

90

#範例輸出

Student 1

#Sum 385

#Average 77.00

Student 2

#Sum 380

#Average 76.00

Student 3

#Sum 415

#Average 83.00



二、程式範例:


1. scores = [[0 for _ in range(7)] for _ in range(3)]
2. for i in range(3):
3.     print(f"The {i+1}st student:")
4.     for j in range(5):
5.         scores[i][j] = eval(input())
6. for i in range(3):
7.     sum = 0
8.     for j in range(5):
9.         sum += scores[i][j]
10.     scores[i][5] = sum
11.     scores[i][6] = sum / 5
12. for i in range(3):
13.     print(f"Student {i+1}")
14.     print(f"#Sum {scores[i][5]}")
15.     print(f"#Average {scores[i][6]:.2f}")

#執行結果

The 1st student:

78

89

88

70

60

The 2st student:

90

78

66

68

78

The 3st student:

69

97

70

89

90

Student 1

#Sum 385

#Average 77.00

Student 2

#Sum 380

#Average 76.00

Student 3

#Sum 415

#Average 83.00



三、程式解說:

第 1 行: 宣告串列 scores。

第 2~5 行: 使用雙迴圈 for 將輸入的三位學生成績存入串列中。

第 6~11 行: 使用雙迴圈 for 計算三位學生的總分及平均分數存入串列中。

第 12~15 行: 使用迴圈 for 列印輸出三位學生的總分及平均分數。






2025年10月1日 星期三

TQC+ Python 證照考題評量(五十) - 二維串列行列數

 一、主題介紹:

如何將行列資料存入二維串列中,這時常用於資料庫的存取中,所以是必須學會的絕活,接下來就透過 TQC+ 考題來學習二維串列的應用。

(1) 題目

請撰寫一程式,讓使用者輸入兩個正整數 rows、cols,分別表示二維串列lst 的「第一個維度大小」與「第二個維度大小」。

串列元素[row][col]所儲存的數字,其規則為:row、col 的交點值 = 第二個維度的索引col – 第一個維度的索引row。

接著以該串列作為參數呼叫函式compute()輸出串列。

提示:欄寬為4。

(2) 輸入輸出

#輸入

輸入兩個正整數

#輸出

輸出串列,欄寬為4

#範例輸入

5

10

#範例輸出

   0   1   2   3   4   5   6   7   8   9

  -1   0   1   2   3   4   5   6   7   8

  -2  -1   0   1   2   3   4   5   6   7

  -3  -2  -1   0   1   2   3   4   5   6

  -4  -3  -2  -1   0   1   2   3   4   5



二、程式範例:


1. def comput(y,x):
2.     datas = [[0 for _ in range(x)] for _ in range(y)]
3.     for i in range(y):
4.         for j in range(x):
5.             datas[i][j] = j - i
6.     for i in range(y):
7.         for j in range(x):
8.             print(f"{datas[i][j]:4}",end='')
9.         print('')
10.
11. rows = eval(input())
12. cols = eval(input())
13. comput(rows,cols)

#執行結果

5

10

   0   1   2   3   4   5   6   7   8   9

  -1   0   1   2   3   4   5   6   7   8

  -2  -1   0   1   2   3   4   5   6   7

  -3  -2  -1   0   1   2   3   4   5   6

  -4  -3  -2  -1   0   1   2   3   4   5



三、程式解說:

第 1 行: 定義函式 compute() 及 參數 y 與 x。

第 2 行: 宣告行列數的串列。

第 3~5 行: 使用 for 雙迴圈存入第二個維度的索引 col – 第一個維度的索引 row 的值。

第 6~9 行: 使用 for 雙迴圈列印輸出欄寬為 4 的串列資料的數值。

第 11 行: 將輸入的列正整數字串轉換為數值後存入 rows 變數中。

第 12 行: 將輸入的行正整數字串轉換為數值後存入 cols 變數中。

第 13 行: 將 rows、cols 數值帶入函式的參數中,經計算後列印輸出。


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 = 重設格式 )





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

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