# Python基本型態、運算子、群集型態測驗-參考答案 ###### tags: `python` ## 基本型態、運算子 1. Python數值型態有哪4種? **答:** ``` int, float, bool, complex ``` 2. 字串可以使用哪些算術運算子? **答:** ``` +: 串接 *: 重複字串 ``` 3. 在字串裡可以使用什麼轉譯字來換行? **答:** ``` \n ``` 4. 何謂r字串? **答:** ``` r字串為raw,轉譯符號會被當成一般文字輸出 ``` 5. Python有哪幾種格式化字串的方式? **答:** ``` C風格、str.format()、f字串 ``` 6. `4 < 0`的運算會產生甚麼結果? **答:** ``` False ``` 7. Python內如何使用註解? **答:** ``` #: 單行註解。 PYTHON本身不支援多行註解,但可以用 ''' 多行的方式來包住想註解的區段,執行的時候會被忽略。 ``` 8. 該怎麼去掉`4.5`的小數點? 請寫出程式碼。 **答:** ``` int(4.5) ``` 9. 請用指派運算子寫出`a = a + 99`的精簡寫法。 **答:** ``` a += 99 ``` 10. 何謂轉型? 請舉例以程式碼示範將字串轉型為整數。 **答:** ``` 轉型意指將某一個基本型態轉換成另一種基本型態。 字串轉型為整數可以使用int()方法,例如: to_str = int('99') ``` ## 群集型態 1. Python有哪4種群集型態? **答:** ``` 清單(list) 集合(set) 字典(dict) Tuple(tuple) ``` 2. 要如何取得['aaron', 'andy', 'abner']清單內的'abner'這筆資料? 請寫出程式碼。 **答:** ``` print(['aaron', 'andy','abner'][2]) ``` 3. 該怎麼判斷某個元素是否存在於list當中? **答:** ``` 使用in判斷資料是否存在容器內 ``` 4. `a = {}`會建立出甚麼群集型態? **答:** ``` 建立dict 型態 ``` 5. 哪兩種方法可以取得dict內的值? **答:** ``` get()與[] ``` 6. 要刪除tuple內某一筆資料有哪些方法? **答:** ``` tuple內的資料無法刪除。 ``` 7. `a, b, c = (1, 2, 3)`這是資料的pack還是unpack? **答:** ``` unpack ``` 8. 如何用一行程式碼產生一個1~100之間偶數的`list`? ``` [2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100] ``` **答:** ``` print(list(range(0, 101, 2))) ``` 9. 如何取出下面set()所有的數字並加總後使用print()函式輸出。 ``` my_set = {28, 37, 16} ``` **答:** ``` my_set = {28, 37, 16} sum = 0 for e in my_set: sum += e print(e) ``` 10. 有一個`list`為:`['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k']`,請問: a. 如何使用切片得到:`['b', 'd', 'f', 'h', 'j']`的結果? **答:** ``` src = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k'] result = src[1::2] print(result) ``` b. 如何使用索引切片得到:`['i', 'j', 'k']`的結果? **答:** ``` src = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k'] result = src[-3:] print(result) ``` c. 如何使用索引切片得到: `'c-b-a'`的結果? **答:** ``` src = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k'] result = '-'.join(src[2::-1]) print(result) ``` d. 如何使用索引切片得到:`'kakakaka'`的結果(搭配算術運算子)? **答:** ``` src = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k'] result = ''.join(src[::-10]) * 4 print(result) ``` > k為最後一個值,a為第一個值。 11. `remove()`方法和`del`都可以用來刪除`list`的一個元素,請問這兩個刪除元素的方式有什麼差別? **答:** ``` remove()傳入要刪除的元素值。 del 後面帶要刪除的元素索引。 ``` 12. 有一個字串`list`為:`data = ['aaron', 'andy', 'apple', 'amber', 'aaron', 'abner']`,其中`'aaron'`出現了兩次,如何從該`list`中移除所有的`'aaron'`字串? **答:** ``` data = ['aaron', 'andy', 'apple', 'amber', 'aaron', 'abner'] result = list(set(data)) result.remove('aaron') print(result) ``` 13. 有兩個`list`資料,一個為學生姓名,一個為對應的每個學生成績,請問該如何將這兩個`list`資料配對後合併成一個`dictionary`,例如: 將: ``` names = ['aaron', 'andy', 'amber', 'apple', 'abner'] scores = [100, 90, 60, 80, 50] ``` 變成: ``` {'aaron': 100, 'andy': 90, 'amber': 60, 'apple': 80, 'abner': 50} ``` **答:** ``` names = ['aaron', 'andy', 'amber', 'apple', 'abner'] scores = [100, 90, 60, 80, 50] result = dict(zip(names, scores)) print(result) ``` 14. 如何用一行程式碼,就將`data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]`就將這個`list`的第一個植根最後一個值分別存放到`first`和`last`變數當中? **答:** ``` data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] first, *temp, last = data print(first, last) ``` > first將會是0,last為9