// 題目

游泳班報名的年齡欄

Swim Class Age Field・pync-13-01

  • APCS 初級
  • 測試、迴圈不變量與對拍
  • Python 程式設計・13 Debugging & Errors

時間限制 1 秒・記憶體 31 MB

到 Aki-Judge 送出

送出程式要先用 Discord 帳號登入 Aki-Judge,並加入註解 Annotated 的 Discord 伺服器(免費)。看題目不用登入。

題目敘述

社區游泳班用網頁表單收報名,「年齡」是一個自由輸入的文字框,每天匯出來的內容很雜:有人留白,有人寫「三十二」或西元出生年,也有人填了看得懂、卻不符合資格的數字。

給你 N 份表單的年齡欄原文,請把每一份歸入下列恰好一類,判斷順序如下:

  1. 去掉前後空白後是空字串:Missing(沒填)。
  2. 否則,若內容無法轉成整數(以 Python 的 int() 能否轉換為準):Unreadable(無法判讀)。
  3. 否則,若整數小於 18 或大於 75:Ineligible(不符資格)。負數也是整數,所以屬於這一類。
  4. 其餘:Accepted(收下)。

最後輸出收下的表單的平均年齡;如果一份都沒收下,就沒有平均可印。

輸入格式

第 1 行是 N,表單的份數。接下來 N 行,每行是一格照原樣抄下來的年齡欄,這一行有可能是空的。

輸出格式

依序印出 Accepted、Missing、Unreadable、Ineligible 四個計數,然後印出收下的表單的平均年齡(小數點後 2 位);如果一份都沒收下,改印 No accepted ages。

範例

範例 1

輸入

7
34

三十二
16
 58 
1993
-5

輸出

Accepted: 2
Missing: 1
Unreadable: 1
Ineligible: 3
Average age: 46.00

說明

int("") 與 int("三十二") 都會丟出 ValueError,所以空白必須在轉換之前就先分出來。年齡是否落在 18 到 75 之間是規則而不是錯誤,用 if 判斷即可。

到 Aki-Judge 送出

送出程式要先用 Discord 帳號登入 Aki-Judge,並加入註解 Annotated 的 Discord 伺服器(免費)。看題目不用登入。

卡住了可以到 Discord 的 #程式問題 發問,小墨助教會先給提示,不會直接給答案。