# 2022-11-05 第一天 Python入門實作班上課記錄 ###### tags: `python` #### 使用者輸入兩個數字後相加 ``` a1 = input('請輸入第一個數字:') # 這是字串(註解) a2 = input('請輸入第二個數字:') # 這是字串(註解) # 轉型 a1 = int(a1) # 把a1內容轉型成數字(整數), 指派(永遠都是右邊指派給左邊)指派給左邊) a2 = int(a2) # 把a1內容轉型成數字(整數), 指派(永遠都是右邊指派給左邊)指派給左邊) print(a1, a2) print('總和為:', a1 + a2) ``` #### Python的資料型態 ``` print(type(33)) print(type('33')) print(type(3.3)) print(type(True)) ``` #### 基本四則運算 ``` print('1 + 1 = ', 1 + 1) # 2 print('2 - 1 = ', 2 - 1) # 1 print('3 * 2 = ', 3 * 2) # 6 print('3 ** 2 = ', 3 ** 2) # 9 print('4 / 2 = ', 4 / 2) # 2.0 () print('4 / 3 = ', 4 / 3) # 1.3333333..... print('10 // 3 = ', 10 // 3) # 3 (除法運算取整數) print('10 % 3 = ', 10 % 3) # 1 ``` #### 邏輯運算子 ``` print(not True) print(True or False) print(True and False) ``` #### 字串相加 ``` a = 3 b = 9 print(str(a) + str(b)) ``` #### 存取群集資料型態 ``` a = [1, 2, 3, 4] # 資料索引從0開始 print(a[2]) # 索引運算子 # print(a[4]) # 錯誤,索引超過範圍了 print(type(a)) a.append(5) a.remove(2) # 刪除指定內容 del a[0] # 刪除指定位置 print(a) ``` #### 群集資料型態通用方法 ``` print(len(a)) # a有幾筆資料 print(3 in a) # a裡面有沒有3這個資料(結果為True或False) print(30 in a) # a裡面有沒有3這個資料(結果為True或False) ``` #### 課中練習 1. `a = a + 3`使用運算子縮寫 2. 輸出和輸入的方法名稱為何? #### 不小心蓋掉內建函示功能的解法 ``` input = [1, 2, 3, 4] print(type(sum)) sum = sum(input) # 內建涵式功能被蓋掉了 print(type(sum)) print(sum) # print(sum([1, 2])) del sum # 恢復內建函式功能 print(sum([1, 2])) ``` #### dict ``` my_dict = {'Hi': 'Aaron', 'ok': 'Amber'} my_dict['test'] = 999 # 新增資料 my_dict['Hi'] = 999 del my_dict['ok'] print(my_dict['Hi']) # print(my_dict['ok']) print(my_dict) ``` #### tuple ``` # t = 1, 2, 3 # t = (1, 2, 3) t = 1, 2, 3, 4, 5, 6 # pack print(type(t)) print(t) *a, b, c = t # unpack print(a) print(b) print(c) ``` ## 課後練習 1. 字串可以使用哪些算術運算子? **答:** ``` ``` 3. 在字串裡可以使用什麼轉譯字來換行? **答:** ``` ``` 5. Python有哪幾種格式化字串的方式? **答:** ``` ``` 6. `4 < 0`的運算會產生甚麼結果? **答:** ``` ``` 7. Python內如何使用註解? **答:** ``` ``` 8. 該怎麼去掉`4.5`的小數點? 請寫出程式碼。 **答:** ``` ``` 9. 請用指派運算子寫出`a = a + 99`的精簡寫法。 **答:** ``` ``` ## 群集型態 1. Python有哪4種群集型態? **答:** ``` ``` 2. 要如何取得['aaron', 'andy', 'abner']清單內的'abner'這筆資料? 請寫出程式碼。 **答:** ``` ``` 3. 該怎麼判斷某個元素是否存在於list當中? **答:** ``` ``` 4. `a = {}`會建立出甚麼群集型態? **答:** ``` ``` 5. 哪兩種方法可以取得dict內的值? **答:** ``` ``` 6. 要刪除tuple內某一筆資料有哪些方法? **答:** ``` ``` 7. `a, b, c = (1, 2, 3)`這是資料的pack還是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] ``` **答:** ``` ``` 9. 如何取出下面set()所有的數字並加總後使用print()函式輸出。 ``` my_set = {28, 37, 16} ``` **答:** ``` ``` 10. 有一個`list`為:`['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k']`,請問: a. 如何使用切片得到:`['b', 'd', 'f', 'h', 'j']`的結果? **答:** ``` ``` b. 如何使用索引切片得到:`['i', 'j', 'k']`的結果? **答:** ``` ``` c. 如何使用索引切片得到: `'c-b-a'`的結果? **答:** ``` ``` d. 如何使用索引切片得到:`'kakakaka'`的結果(搭配算術運算子)? **答:** ``` ``` > k為最後一個值,a為第一個值。 11. `remove()`方法和`del`都可以用來刪除`list`的一個元素,請問這兩個刪除元素的方式有什麼差別? **答:** ``` ``` 12. 有一個字串`list`為:`data = ['aaron', 'andy', 'apple', 'amber', 'aaron', 'abner']`,其中`'aaron'`出現了兩次,如何從該`list`中移除所有的`'aaron'`字串? **答:** ``` ``` 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} ``` **答:** ``` ``` 14. 如何用一行程式碼,就將`data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]`就將這個`list`的第一個植根最後一個值分別存放到`first`和`last`變數當中? **答:** ``` ``` > first將會是0,last為9 ## 快篩 ``` import csv with open('Fstdata.csv', encoding='utf-8') as csvfile: rows = csv.reader(csvfile) for row in rows: if '人生' in row[1]: print(row[1], '=', row[7]) ``` ``` name = input('請輸入名字:') age = input('請輸入年齡:') print('你的名字是:', name, ', ', age, '歲') print(f'你的名字是: {name}, {age}歲') ```