### Chapter 1 ### 觀念驗證 1.1 ### 1. Out[ ]: True 2. 0 3. Out[ ]: 4 4. hello ### 觀念驗證 1.2 ### 1. -12 2. 19 2. Out[ ]: 9 3. NameError: name 'z' is not defined (使用變數,一定要先有指派) ### Chapter 4 ### 觀念驗證 4.1 ### 1. 不行 (等號左邊只能是一個變數) 2. 不行 (等號左邊只能是一個變數) 3. 可以 (但不能單獨執行,必須有宣告過 stuff 與 things) 4. 可以 (但不能單獨執行,必須有宣告過 spring, summer, fall 與 winter) ### 觀念驗證 4.2 ### 1. 電話的屬性:長方形、光滑的、黑色、會發光、尺寸為 4 英吋 x 2 英吋、上面有按鈕。 電話的方法:按下按鈕、發出聲音、打電話、發送 email。 2. 狗的屬性:有毛、4 隻腳、1 張嘴、2 個眼睛、1 個鼻子、2 個耳朵. 狗的方法:叫、用爪子抓、跑、跳、發出哀鳴、舔。 3. 鏡子的屬性:能夠反射、易碎裂、周圍銳利。 鏡子的方法:破裂、顯示反射的影像。 4. 信用卡的屬性:3 英吋 x 2 英吋、薄的、有彈性的、上面有數字和文字。 信用卡的方法:刷卡、用來開門、買東西。 ### 觀念驗證 4.3 ### 1. 合法 2. 不合法 (不能有 - ) 3. 不合法 (開頭不能是數字) 4. 不合法 (只能以字母或是底線 _ 做開頭) 5. 合法 6. 合法 (但不合適,名稱太長了) ### 觀念驗證 4.4 ### 1. 合適且合法 2. 不合法 (print 是內建函式,保留字不可用來當變數) 3. 不合適 (雖然有描述性但是無意義的變數名稱,除非你確實在撰寫關於獨角獸的程式) 4. 不合適 (太長) 5. 不合法 (range 是內建函式,保留字不可用來當變數) ### 觀念驗證 4.5 ### 1. float 2. int 3. bool 4. str 5. str 6. int 7. int 8. str 9. NoneType ### 觀念驗證 4.6 ### 1. 是敘述也是運算式 2. 是敘述也是運算式 3. 敘述 (又稱指派敘述) 4. 敘述 ### Chapter 5 ### 觀念驗證 5.1 ### 1. 07 小時 36 分鐘 2. 00 小時 00 分鐘 3. 16 小時 39 分鐘 ### Chapter 6 ### 觀念驗證 6.1 ### 1. 合法 2. 合法 3. 合法 4. 不合法 (沒有引號,為變數名稱) 5. 合法 6. 合法 ### 觀念驗證 6.2 ### 1. 從前端為:5,從後端為:-8 2. 從前端為:0,從後端為:-13 3. 從前端為:12,從後端為:-1 ### 觀念驗證 6.3 ### 1. 'e' 2. ' ' (空格) 3. code[0] 為 'L' code[-4] 為 'x' ### 觀念驗證 6.4 ### 1. 't' 2. 'nhy tWp np' 3. '' (空字串) (間隔值為 1 會從左往右抓, 但起始索引在右,而結束索引在左,所以抓不到任何字串) ### 觀念驗證 6.5 ### 1. 'Python 4 ever&ever' 2. 'PYTHON 4 EVER&ever' 3. 'PYTHON 4 EVER&EVER' 4. 'python 4 ever&ever' ### 觀念驗證 6.6 ### 1. 14 2. 9 3. -1 4. 15 5. 6 6. 8 ### 觀念驗證 6.7 ### 1. True 2. True 3. False ### 觀念驗證 6.8 ### 1. 1 2. 2 3. 1 4. 0 ### 觀念驗證 6.9 ### 1. 'raining in the spring time.' 2. 'Rain in the spr time.' 3. 'Raining in the spring time.' 4. b 的值為 'Raining in the spring tiempo.' ### 觀念驗證 6.10 ### 1. 'lalaLand' 2. 'USA vs Canada' 3. 'NYcNYcNYcNYcNYc' 4. 'red-circlered-circlered-circle' ### Chapter 7 ### 觀念驗證 7.1 ### 1. 否 2. 是 3. 否 4. 否 5. 否 ### 觀念驗證 7.2 ### 1. num is less than 10 Finished 2. Finished 3. Finished ### 觀念驗證 7.3 ### 1. if " " in word: 2. if num1 + num2 < 0: ### 觀念驗證 7.4 ### 略 ### 觀念驗證 7.5 ### ### 觀念驗證 7.6 ### 數字有 3 種狀況,使用 if-else 語法的話,只能判斷正數或負數,當使用者輸入 0 時,無法顯示正確的訊息。 ### 觀念驗證 7.7 ### num 為 -3,輸出:num is negative num 為 0,輸出:num is zero num 為 2,輸出:num is positive num 為 1,輸出:num is positive ### 觀念驗證 7.8 ### 略 ### 觀念驗證 7.9 ### num if-elif-else if ------------------------------------------------------------------------------- 20 num is greater than 3 num is greater than 3 Finished. Finished. ------------------------------------------------------------------------------- 9 num is less than 10 num is less than 10 Finished. num is greater than 3 Finished. ------------------------------------------------------------------------------- 5 num is less than 6 num is less than 6 Finished. num is less than 10 num is greater than 3 Finished. ------------------------------------------------------------------------------- 0 num is less than 6 num is less than 6 Finished. num is less than 10 Finished. ### Chapter 8 ### 觀念驗證 8.1 ### s = input("請輸入顯示內容:") n = int(input("請輸入顯示次數:")) while(n > 0): print(n, s) n = n - 1 ### 觀念驗證 8.2 ### 因為 tries 先加 1 才印出次數,因此顯示的猜測次數會比實際猜的次數多 1 次。 ### 觀念驗證 8.3 ### 1. 0 2. 0, 1, 2, 3, 4 3. 0, 1, 2, 3, 4, 5, 6, ..., 99 ### 觀念驗證 8.4 ### 1. 0, 1, 2, 3, 4, 5, 6, 7, 8 2. 3, 4, 5, 6, 7 3. -2, 0, 2 4. 5, 2, -1, -4 5. (無資料) ### 觀念驗證 8.5 ### Mins = int(input("please input Minutes to countdown: ")) for i in range(Mins-1, -1, -1): for j in range(59, -1, -1): print(i, ":", j) ### 觀念驗證 8.6 ### vowels = "aeiou" words = input("Tell me something: ") for letter in words: if letter in vowels: print("vowel") ### 觀念驗證 8.7 ### Name = (("張", "天才"), ("王", "子帥"), ("陳", "美美")) print("全名是: ") for e in Name: print(e[0] + e[1]) ### 觀念驗證 8.8 ### Student = ((22, ("張", "天才")), (23, ("王", "子帥")), (24, ("陳", "美美"))) for no, name in Student: print(str(no) + " 號 - " + name[0] + name[1]) ### 觀念驗證 8.9 ### password = "robot fort flower graph" space_count = 0 for ch in password: if ch == " ": space_count += 1 print(space_count) # 我們也可以使用 password.count(" "),來計算字串內有幾個空白。 ### Chapter 9 ### 觀念驗證 9.1 ### 1. def set_color(name, color): 2. def get_inverse(num): 3. def print_my_name(): ### 觀念驗證 9.2 ### # 下面是參考答案,可能還會有其他適合的函式名稱 1. get_age 或 get_tree_age 2. translate 或 dog_says 3. cloud_to_animal 或 take_picture 4. age or get_age 或 years_later ### 觀念驗證 9.3 ### 1. add(1, 2, 3):正確 2. add(1, 2, num3 = 3):正確 3. add(num3 = 3, num2 = 2, num1 = 1):正確 4. add(num3 = 3, 1, 2):錯誤 5. add(num1 = 1, 2, 3):錯誤 6. add(1, num3 = 3, num2 = 2):正確 ### 觀念驗證 9.4 ### 1. 正確 (註:當參數 two 和參數 three 是可以進行加法運算的物件,才會正確) 2. 正確 3. 不正確 (縮排有錯誤) ### Chapter 10 ### 觀念驗證 10.1 ### 1. 使用不可變物件 (例如:tuple,因為城市的名字幾乎不會變動)。或是可變物件 (例如:串列,因為我們可能會視需要新增或刪除城市),都可以 2. 可以使用整數這個不可變物件來儲存 (因為此為簡單的整數,修改此簡單的整數不需要使用可變物件) 3. 可變物件,可使用字典儲存商品及其對應的價格 4. 可以使用字串這個不可變物件 ### 觀念驗證 10.2 ### 1. tuple 2. tuple 3. tuple 4. 串列 5. 串列 ### 觀念驗證 10.3 ### 1. 堆疊 2. 堆疊 3. 佇列 4. 都不適合,因為第一個出來的行李可能都沒有拿取 ### 觀念驗證 10.4 ### 1. employee_database = {} Key: 員工姓名 Value: 使用tuple儲存電話號碼(字串)和地址(字串) 2. snow_accumulation = {} Key: 城市名稱 Value: 使用tuple儲存年份(整數)和降雪量(浮點數)資訊,其格式為(年份,降雪量,年份,降雪量)。例如:(1990,12,3,2000,8.6) 3. valuables = {"tv": 2000, "sofa": 1500} Key: 物品名稱 Value: 物品價格 ### 觀念驗證 10.5 ### 1. 3 項資料,鍵為整數,值為整數 2. 3 項資料,鍵為字串,值為整數 3. 3 項資料,鍵為整數,值為串列 ### 觀念驗證 10.6 ### (顯示順序可能不同) 25 51 35 ### Chapter 11 ### 觀念驗證 11.1 ### 1. 長和寬。 2. 長度、寬度和深度,有多少個連接埠,螢幕…等等。 3. 有多少隻椅腳,是否有椅背,是否有軟墊。 4. 姓名、年齡、身高、體重、髪色、眼球的顏色…等等。 ### 觀念驗證 11.2 ### 1. 取得面積或周長。 2. 開啟/關閉、取得尺寸、將訊號線連接到電視。 3. 是否有人坐在椅子上,鋸斷椅腳、加上軟墊。 4. 更改姓名,增加年紀,改變髮色。 ### 觀念驗證 11.3 ### 1. class Person: 2. class Car: 3. class Computer: ### 觀念驗證 11.4 ### 1. class Person: def __init__(self): self.name = '' self.age = 0 2. class Car: def __init__(self): self.length = 0 self.width = 0 self.height = 0 3. class Computer: def __init__(self): self.on = False self.touchscreen = False ### 觀念驗證 11.5 ### class Door: def __init__(self): self.width = 1 self.height = 1 self.open = False def get_status(self): return self.open def get_area(self): return self.width * self.height ### 觀念驗證 11.6 ### class Door: def __init__(self): self.width = 1 self.height = 1 self.open = False def change_state(self): self.open = not self.open def scale(self, factor): self.height *= factor self.width *= factor 1. square_door = Door() 2. square_door.change_state() 3. square_door.scale(3) 4. def area(self) return (self.width * self.height) 5. print(square_door.area()) ### 觀念驗證 11.7 ### def add_list(self, L): for e in L: self.stack.append(e) ### 觀念驗證 11.8 ### circles = Stack() for i in range(3): one_circle = Circle() one_circle.change_radius(3) circles.add_one(one_circle) rectangles = Stack() one_rectangle = Rectangle(1, 1) rectangles.add_many(one_rectangle, 5)