ITS Python — NeuraCache 閃卡

這個檔案不是拿來「讀」的

這是給 NeuraCache App 讀取的資料檔。用眼睛複習請看 04-易錯題自我測驗卡
安裝與使用方式 → 11-NeuraCache 使用說明

與 Obsidian SR 外掛的關係

本檔的標記是「井字號 + flashcard」單數;SR 外掛用的是複數形式。
兩者是不同標籤,各自獨立、互不干擾,可以同時使用。

⚠️ 本說明區刻意不寫出完整標籤字樣,以免被 NeuraCache 誤判成一張卡片。


問答卡|CH01-02 型態與運算子(10 張)

age = input("Enter your age: ") 之後,age 的資料型態是? flashcard its-python ch01-02 qa

str(字串)input() 的回傳值永遠是字串,即使使用者輸入數字。要運算必須先 int() / float() / eval()


print("worked for" + (int(end) - int(start)) + "hours") 會發生什麼事? flashcard its-python ch01-02 qa

TypeError —— str 不能直接 + int。正確:print("..." + str(int(end) - int(start)) + "hours")


「即使使用者輸入小數,也必須轉成整數計算」該用哪個寫法? flashcard its-python ch01-02 qa

int(input("..."))float() 不會變整數;不加轉型會是字串。


type(+1E10)type(5.0)type("True")type(False) 分別是什麼? flashcard its-python ch01-02 qa

float、float、str、bool。陷阱:"True" 有引號是字串1E10 科學記號是 float


寫出六類運算的優先順序(由先到後) flashcard its-python ch01-02 qa

括弧 → 指數 ** → 正負號 +x -x ~x → 乘除 * / // % → 加減 + - → 比較 → notandor。⚠️ 陷阱:not 排在比較之後,不是跟正負號同層 → not a == b 等於 not (a == b);與正負號同層的是 ~(位元反轉)。


a=24; b=7; ans = (a % b * 100) // 2.0 ** 3.0 - bans 是多少? flashcard its-python ch01-02 qa

30.024%7=33*100=3002.0**3.0=8.0300//8.0=37.0(有 float → float)→ 37.0-7=30.0


公式「b 等於 a 乘以 −1 之後再平方」的正確寫法? flashcard its-python ch01-02 qa

答案:b = (-a) ** 2。寫成 -a ** 2 會被解讀為 -(a ** 2),因為指數優先於負號


==is 差在哪裡? flashcard its-python ch01-02 qa

== 比較值 / 內容is 比較是否為同一個物件(記憶體位址)。例:兩個內容相同但獨立的清單 → == 為 True、is 為 False。


a = 'Config1'b = aa += 'Config2'print(a)print(b) 各印什麼? flashcard its-python ch01-02 qa

Config1Config2Config1。字串是不可變物件a += ... 會建立新物件讓 a 指向它,b 仍指向原本的 'Config1'


要「去除平均值的小數部分」,有哪兩種正確寫法? flashcard its-python ch01-02 qa

int(total / count)total // count。(total ** count 是指數運算,錯誤)


問答卡|CH03 字串與清單(6 張)

alph = "abcdefghijklmnopqrstuvwxyz"alph[3:6]alph[:6] 各是什麼? flashcard its-python ch03 qa

defabcdef。切片 [start:stop] 不包含 stop;省略 start 預設從 0 開始。


清單有 60 人、最後 3 位是幹部,要取得「除了幹部以外的所有人」怎麼寫? flashcard its-python ch03 qa

classroom[:-3]classroom[0:-3]。因為切片不含 stop,-3 正好排除最後 3 個。


反轉字串最短的寫法是什麼?迴圈版怎麼寫? flashcard its-python ch03 qa

alph[::-1]。迴圈版:for index in range(len(name)-1, -1, -1)


list_3 = [1,2] + [3,4]list_4 = list_3 * 3list_4 是什麼? flashcard its-python ch03 qa

[1,2,3,4,1,2,3,4,1,2,3,4]+ 是串接、* 是整串重複(不是逐元素相乘,也不是巢狀)。


aList = [0,1,2,3,4]print(4 in aList) 印出什麼? flashcard its-python ch03 qa

Truein 回傳布林值,不是索引也不是元素。


rooms = {1:'Foyer', 2:'Conference Room'}room = input(...),為什麼永遠找不到房間? flashcard its-python ch03 qa

資料類型不符。字典的鍵是整數 1,但 input() 得到字串 "1",在 Python 中 "1" != 1。修正:room = int(input(...))


問答卡|CH04 輸入輸出與檔案(7 張)

"{1} and {0} and {2}".format(z, y, x) 中,{1} 對應哪個變數? flashcard its-python ch04 qa

yformat() 的引數索引從 0 開始{0}=z{1}=y{2}=x


「姓名靠左對齊寬 20」和「平均分數格式 XXX.XX」的格式字串各是什麼? flashcard its-python ch04 qa

%-20s%6.2fXXX.XX = 左 3 位 + 小數點 + 右 2 位 = 總寬 6、小數 2 位。


輸出要求「字串加雙引號、數字不加、逗號分隔」,哪兩種寫法正確? flashcard its-python ch04 qa

print('"{0}", {1}'.format(item, sales)) ✅ print('"' + item + '",', sales)(print 用逗號會自動補空格) ❌ print(item + ',' + sales) → TypeError


⭐ 開檔模式 rwaw+ 在「檔案不存在」與「檔案已存在」時各如何? flashcard its-python ch04 qa

r = 不存在報錯 / 唯讀;w = 建立 / 清空覆寫a = 建立 / 附加到結尾w+ = 建立 / 清空(可讀寫)。題目說「已有內容要刪除」→ w;「加到最後」→ a


readline() 讀到「檔案結尾」和「空白行」分別回傳什麼? flashcard its-python ch04 qa

檔尾 (EOF) → "" 空字串;空白行 → "\n"。所以「還沒到檔尾」寫 if line != "",「過濾空白行」寫 if line != "\n"


檢查檔案是否存在、讀取全部內容、寫入內容的正確方法各是什麼? flashcard its-python ch04 qa

os.path.isfile(path)(要先 import os)、file.read()file.write("...")。❌ os.existos.findfile.addappend 都不存在。


print('{:%B-%d-%y}'.format(datetime.datetime(2017,4,7))) 輸出什麼? flashcard its-python ch04 qa

考試選 APRIL-07-17,但 Python 實際輸出是 April-07-17%B 只有首字大寫,官方選項印成全大寫是排版問題)。%B 月份全名、%d 兩位日、%y 兩位年。(%A 才是星期全名)


問答卡|CH05 判斷式與迴圈(10 張)

⭐⭐ 外層 if grade <= 100: 底下第一個判斷 grade >= 90 要用 if 還是 elifflashcard its-python ch05 qa

if。🔑 進入巢狀內層時,第一個判斷要重新用 if,同層的後續才用 elif,最後用 else 收尾。這是全書最常錯的一題。


判斷 1 位數 / 2 位數 / 2 位以上,三格分別填什麼? flashcard its-python ch05 qa

if num > -10 and num < 10:elif num > -100 and num < 100:else:。由小範圍往大範圍排,最後用 else 收剩下的。


入場費:5 歲以上學生 10 元、5–17 歲非學生 20 元、17 歲以上非學生 50 元。內層條件怎麼寫? flashcard its-python ch05 qa

外層 if age >= 5 and school == True:elif age >= 5 and school == False:;內層因為已確認 ≥5,只需 if age <= 17: / else:


range(2, 13) 會產生哪些數字?做「2 到 12 的乘法表」要怎麼寫? flashcard its-python ch05 qa

產生 2, 3, …, 12(含 start、不含 stop)。要含 12 → stop 必須寫 13。2~9 的九九乘法 → range(2, 10)


⭐ 走訪整個清單的索引,正確寫法是什麼?常見錯誤是什麼? flashcard its-python ch05 qa

for index in range(len(mylist)):。❌ range(len(mylist) - 1)少跑最後一個元素(除錯題最常見答案);❌ size() 不是 Python 函式。


breakcontinuepass 各做什麼?題目關鍵字怎麼對應? flashcard its-python ch05 qa

break = 立刻跳出迴圈(「找到就停止」);continue = 跳過本輪繼續下一個(「不符合就略過這一位」);pass = 什麼都不做(「暫時保留空區塊」)。


for ... else 的 else 什麼時候會執行? flashcard its-python ch05 qa

只有當迴圈「沒有被 break 中斷」、完整跑完時才執行。 用途:「全部找完都沒找到」→ 印出找不到訊息。


product=2; n=5while (n != 0): product *= n; print(product); n -= 1; if n == 3: break 會印幾行? flashcard its-python ch05 qa

2 行(印出 10、40)。第 1 圈 2×5=10、n→4;第 2 圈 10×4=40、n→3,n==3 成立 → break。


質數判斷程式中,if n % i == 0: 之後填什麼?while 迴圈最後填什麼? flashcard its-python ch05 qa

break(已確定不是質數,不必再檢查)與 n = n + 1(計數器遞增,不寫會無窮迴圈)。另外 is_prime = True 必須放在 while 迴圈內每輪重設。


迴圈除錯題最常見的 4 個錯誤是什麼? flashcard its-python ch05 qa

① 條件式後面忘記冒號 : ② 用 [ ] 包條件(while [i < 10]) ③ numList(i) 應為 numList[i] ④ if a = b: 應為 ==,且 <> 在 Python 3 不支援要用 !=


問答卡|CH06 函式(5 張)

呼叫是 get_name()calc_calories(distance, burn_rate),函式內用 miles * calories_per_mile,定義該怎麼寫? flashcard its-python ch06 qa

def get_name():(呼叫沒傳引數 → 不能有參數)與 def calc_calories(miles, calories_per_mile):(參數名 = 函式內用的變數名)。🔑 ① 看呼叫傳幾個 ② 看函式內部用什麼名字。


關於預設參數,哪些敘述正確、哪些錯誤? flashcard its-python ch06 qa

✅ 有預設值的參數,右側全部也要有預設值;✅ 3 個必要參數只傳 2 個會 TypeError;❌「只傳兩個時第三個會是 None」(會用預設值);❌「函式內改 int 參數會影響外部」(int 不可變 + 區域變數)。


def roomAssignment(student, year):,哪些呼叫方式是對的? flashcard its-python ch06 qa

roomAssignment(name, year=grade)、✅ roomAssignment("Sherlock", 4);❌ roomAssignment(student, year)(變數未定義,NameError)、❌ roomAssignment(year=6, name="Minnie")(參數叫 student 不叫 name,TypeError)。🔑 關鍵字引數順序可任意但名稱必須一致


⭐ Docstring 三問:用什麼符號?放哪裡?怎麼列印? flashcard its-python ch06 qa

三個雙引號 """...""" ② 緊接在 def 之後的第一行(要縮排) ③ print(cube.__doc__)(前後各兩個底線)。※ 課本 6-12 頁印 A/A/B 是錯的,正確為 D/B/C。


關於註解的四個是非題,答案分別是什麼? flashcard its-python ch06 qa

① Python 不檢查註解行的語法 → ✅ 正確 ② 每行註解的 # 是選擇性的 → ❌ 錯誤 ③ comment = "# Return the value" 會被當註解 → ❌ 錯誤(引號內是字串) ④ return x ** y # ... 是合法內嵌註解 → ✅ 正確


問答卡|CH07-08 模組與例外(9 張)

randintrandrange 的範圍差在哪?產生 0~10 的整數該用哪個? flashcard its-python ch07-08 qa

randint(a, b)a ≤ N ≤ b(含尾)randrange(a, b, s)a ≤ N < b(不含尾)。010 用 random.randint(0, 10)(課本 7-12 頁印 A 是錯的,正確 D)。511 → randint(5,11)randrange(5,12,1)


math.fabsmath.floormath.ceil 各是什麼?題目怎麼分辨? flashcard its-python ch07-08 qa

fabs(x) = 絕對值floor(x) = 無條件捨去(題目說「移除小數 / 取整」);ceil(x) = 無條件進位(題目說「無條件進位」)。⚠️ 教材 CH07-6 問「進位」用 ceil,新題 Q74 問「移除小數」用 floor,兩題長很像!


執行 python Script.py Cheese Bacon Bread 後,sys.argv[2] 是什麼? flashcard its-python ch07-08 qa

Baconargv[0] = 腳本名稱 Script.pyargv[1] 才是第一個參數,argv[2] = Bacon


⭐ 關於 try 陳述式的四個是非,答案分別是什麼? flashcard its-python ch07-08 qa

① 可以有一個或多個 except → ✅ Yes ② 可以只有 finally 沒有 except → ✅ Yes ③ 可以同時有 finallyexcept → ✅ Yes ④ 可以有多個 finally → ❌ No(只能一個,且放最後)


def calc_power(a,b): return a**bbaseexponent 都用 input() 取得,會出什麼錯?屬於哪一類? flashcard its-python ch07-08 qa

執行階段錯誤(TypeError)input() 回傳 str,str ** str 不支援。程式中途爆掉,所以「會正確輸出」是錯的。修正:用 eval(input(...))int(input(...))


open("out.txt", 'w+') 但 out.txt 不存在,會發生什麼? flashcard its-python ch07-08 qa

正常執行,不會發生錯誤。 'w+' 在檔案不存在時會自動建立,因此不會觸發 IOError,接著會執行 else 區塊。


單元測試的四格填空:import 什麼、繼承什麼、方法怎麼命名、斷言怎麼呼叫? flashcard its-python ch07-08 qa

import unittestclass TestIsInstance(unittest.TestCase):def test_isInstance(self):必須 test 開頭,測試執行器只跑 test 開頭的方法)→ self.assertIsInstance(obj, cls)要用 self.)。


assertEqualassertIsassertInassertIsInstance 各測什麼? flashcard its-python ch07-08 qa

assertEqual(a,b)相同(==);assertIs(a,b)同一物件is);assertIn(a,b)存在於清單in);assertIsInstance(obj,cls)是否為某類別的實例


語法錯誤、執行階段錯誤、邏輯錯誤怎麼分辨?各舉一例。 flashcard its-python ch07-08 qa

語法錯誤 = 程式還沒執行就被擋(少冒號、if a = b:<>);執行階段錯誤 = 執行到那行才爆(TypeError、ValueError、ZeroDivisionError);邏輯錯誤 = 不報錯但答案錯(用 // 算平均、range 少跑一次)。


填空卡|CH01-02 型態與運算子(13 張)

age = input("Enter your age: ") 執行後,age 的資料型態是 ______ flashcard its-python ch01-02 cloze

str


type(5.0) 的結果是 ______ flashcard its-python ch01-02 cloze

float


type("True") 的結果是 ______ flashcard its-python ch01-02 cloze

str

—— 有引號就是字串,不是布林


type(False) 的結果是 ______ flashcard its-python ch01-02 cloze

bool


type(+1E10) 的結果是 ______ flashcard its-python ch01-02 cloze

float

—— 科學記號是浮點數


把字串轉成整數的內建函式是 ______ flashcard its-python ch01-02 cloze

int


把數值轉成字串的內建函式是 ______ flashcard its-python ch01-02 cloze

str


指數(次方)運算子寫作 ______ (提示:兩個符號) flashcard its-python ch01-02 cloze

答案:**


整數除法(取商、無條件捨去)運算子寫作 ______ (提示:兩個符號) flashcard its-python ch01-02 cloze

//


取餘數運算子寫作 ______ flashcard its-python ch01-02 cloze

%


a=24; b=7,則 (a % b * 100) // 2.0 ** 3.0 - b 的結果是 ______ (提示:是浮點數) flashcard its-python ch01-02 cloze

30.0


print("worked for" + 5 + "hours") 會拋出 ______ flashcard its-python ch01-02 cloze

TypeError


「a 乘以 −1 之後再平方」正確寫法是 b = ______ flashcard its-python ch01-02 cloze

答案:(-a) ** 2


填空卡|CH03 字串與清單(9 張)

把字串中的某段文字換掉,用的方法是 ______ flashcard its-python ch03 cloze

replace


把字串全部轉成大寫,用的方法是 ______ flashcard its-python ch03 cloze

upper


把字串依分隔符切成清單,用的方法是 ______ flashcard its-python ch03 cloze

split


把清單元素合併成一個字串,用的方法是 ______ flashcard its-python ch03 cloze

join


在清單尾端加入一個元素,用的方法是 ______ flashcard its-python ch03 cloze

append


在清單指定位置插入元素,用的方法是 ______ flashcard its-python ch03 cloze

insert


依「值」從清單移除元素,用的方法是 ______ flashcard its-python ch03 cloze

remove


把清單由小到大排序(會改變原清單),用的方法是 ______ flashcard its-python ch03 cloze

sort


取得字串或清單長度的內建函式是 ______ flashcard its-python ch03 cloze

len


填空卡|CH04 輸入輸出與檔案(7 張)

以「唯讀」模式開檔,open() 的模式參數是 ______ flashcard its-python ch04 cloze

r


以「附加(接在檔尾寫入)」模式開檔,模式參數是 ______ flashcard its-python ch04 cloze

a


以「覆寫」模式開檔,模式參數是 ______ flashcard its-python ch04 cloze

w


從檔案讀取一行,用的方法是 ______ flashcard its-python ch04 cloze

readline


把檔案每一行讀成清單,用的方法是 ______ flashcard its-python ch04 cloze

readlines


檢查某個路徑是不是「檔案」,用 os.path. ______ flashcard its-python ch04 cloze

isfile


寫完檔案後要呼叫的方法是 ______ flashcard its-python ch04 cloze

close


填空卡|CH05 判斷式與迴圈(5 張)

立刻跳出整個迴圈的關鍵字是 ______ flashcard its-python ch05 cloze

break


跳過這一輪、直接進下一輪的關鍵字是 ______ flashcard its-python ch05 cloze

continue


要產生 0、1、2 … 9,寫作 range( ______ ) flashcard its-python ch05 cloze

10


要產生 1、3、5、7、9,寫作 range(1, 10, ______ ) flashcard its-python ch05 cloze

2


多重條件判斷中,「否則如果」的關鍵字是 ______ flashcard its-python ch05 cloze

elif


填空卡|CH06 函式(4 張)

定義函式的關鍵字是 ______ flashcard its-python ch06 cloze

def


從函式把值送回呼叫端的關鍵字是 ______ flashcard its-python ch06 cloze

return


語法上需要一個敘述、但實際什麼都不做的關鍵字是 ______ flashcard its-python ch06 cloze

pass


函式沒有寫 return 時,回傳值是 ______ (提示:注意大小寫) flashcard its-python ch06 cloze

None


填空卡|CH07-08 模組與例外(10 張)

匯入模組的關鍵字是 ______ flashcard its-python ch07-08 cloze

import


try 之後,用來攔截例外的關鍵字是 ______ flashcard its-python ch07-08 cloze

except


不論有沒有發生例外都一定會執行的區塊關鍵字是 ______ flashcard its-python ch07-08 cloze

finally


主動拋出例外的關鍵字是 ______ flashcard its-python ch07-08 cloze

raise


10 / 0 會拋出 ______ (提示:大小寫要正確) flashcard its-python ch07-08 cloze

ZeroDivisionError


int("abc") 會拋出 ______ flashcard its-python ch07-08 cloze

ValueError


"a" + 1 會拋出 ______ flashcard its-python ch07-08 cloze

TypeError


開啟不存在的檔案會拋出 ______ flashcard its-python ch07-08 cloze

FileNotFoundError


使用沒有定義過的變數會拋出 ______ flashcard its-python ch07-08 cloze

NameError


lst = [1,2,3] 之後存取 lst[5] 會拋出 ______ flashcard its-python ch07-08 cloze

IndexError