# PYTHON 筆記(上) 第一章到第六章的濃縮 ## 第一章(介紹) ### 輸入 ``` input() ``` ### 輸出 ``` print() ``` ### 整數輸入 ``` x = int(input()) ``` ### 浮點數輸入 ``` x = float(input()) ``` ## 第二章(型態、運算子) ### 布林值 ``` bool() ``` 決定輸出值 為True或False ### 整數 ``` int() ``` 宣告變數的型態為整數 ### 浮點數 ``` float() ``` 告訴變數的型態為浮點數 ### 字串 ``` str() ``` 告訴變數的型態為字串 ### 優先順序 ``` () ** #指數 % / // #整除 * + - ``` ### 練習1 求三數總分數與平均 ``` if __name__ == '__main__': a = float(input('請輸入第一次期中成績?')) b = float(input('請輸入第二次期中成績?')) c = float(input('請輸入期末考成績?')) print('總分為',int(a+b+c),'平均為',(a+b+c)/3) ``` ### 練習2 英制轉公制 ``` if __name__ == '__main__': a = float(input('請輸入幾尺?')) b = float(input('請輸入幾吋?')) print('轉換成',(a*12+b)*2.54,'公分') ``` ### 練習3 分組報告 全班40個人 5個一組 判斷座號為第幾組 ``` if __name__ == '__main__': a = int(input('請輸入座號?')) print('組別為', int(a/6)+1) ``` ### 練習4 賣場買飲料 1罐20元 1打200元 ``` if __name__ == '__main__': a = int(input('請輸入購買飲料的罐數?')) print('需花費',int((a//12)*200 + (a%12)*20)) ``` ### 練習5 電腦單位運算 ``` if __name__ == '__main__': print('1KB=', 2 ** 10,'Byte') print('1MB=', 2 ** 20,'Byte') print('1GB=', 2 ** 30,'Byte') print('1TB=', 2 ** 40,'Byte') print('1PB=', 2 ** 50,'Byte') print('1EB=', 2 ** 60,'Byte') print('1ZB=', 2 ** 70,'Byte') print('1YB=', 2 ** 80,'Byte') ``` ### 練習6 字串處理 (1)空白字元進行切割 (2)將(1)結果還原 (3)所有單字都大寫 ``` if __name__ == '__main__': input_string = "This is a sample string" words = input_string.split() print(words) restored_string = ' '.join(words) print(restored_string) upper_words = [word.upper() for word in words] result = ' '.join(upper_words) print(result) ``` ## 第三章(容器) ### TUPLE 不可跟改的物件 ``` val = (1,2,3) ``` ### 串列 可更改 依序輸出 ``` val = ['a','b','c'] len(val) #串列長度 val.index('a') #1 val.append('d') #['a','b','c','d'] val.insert(3,'e') #['a','b','c',e',d'] val.remove('e') #['a','b','c','e'] del val[0] #['b','c','e'] ``` ### 字典 key 和 value 存取資料 key 查詢 value ``` dict ={'a':'123','b':'456'} for i in dict.keys(): print(i,':',dict[i]) ``` ### 集合 沒有順序 用於找出資料是否存在 ``` val = set(('a',123,'b':456)) print(val) ``` ### 練習1 使用者輸入一段英文句子 去除前後空白或句點 split分割 反轉輸出 ``` if __name__ == '__main__': val = input("請输入一段英文句子:") word = val.strip('.').strip() words = word.split() print(words[::-1]) ``` ### 練習2 找出英文與數學都及格 數學不及格 英文及格且數學不及格 全班學生 = set(['John','Mary','Tina','Fiona','Claire','Eva']) 英文及格 = set(['John','Mary','Clsire','Eva']) 數學及格 = set(['Mary','Fiona','Claire','Eva']) ``` if __name__ == '__main__': 全班學生 = set(['John', 'Mary', 'Tina', 'Fiona','Claire','Eva']) 英文及格 = set(['John', 'Mary', 'Claire', 'Eva']) 數學及格 = set(['Mary', 'Fiona', 'Claire', 'Eva']) print('英文與數學都及格',英文及格.intersection(數學及格)) print('數學不及格',全班學生 - 數學及格) print('英文及格且數學不及格',英文及格 - 英文及格.intersection(數學及格)) ``` ### 練習3 尋找兩個句子中相同字 不包含逗號與句號 ``` if __name__ == '__main__': val1 = "a,b,c,d." val2 = "a,c." val1 = val1.replace(".","") val2 = val2.replace(".", "") word1 = val1.split(',') word2 = val2.split(',') set1 = set(word1) set2 = set(word2) print(set1.intersection(set2)) ``` ### 練習4 輸入三個信箱和名字 透過名字 尋找信箱 ``` if __name__ == '__main__': email_dict = {} for i in range(3): name = input("請輸入名字?: ") email = input("請輸入電子郵件?: ") email_dict[name] = email search_name = input("請輸入要查找的名字: ") if search_name in email_dict: email = email_dict[search_name] print(email) ``` ## 第四章(判斷) ### 判斷 做對的事 ``` if x > 0: #當x>0 elif x < 20: #當 x<20 else: #都沒有 ``` ### 練習1 低於0.9 為近視 ``` if __name__ == '__main__': val = float(input('請輸入眼鏡度數?')) if val < 0.9: print('近視') else: print('視力正常') ``` ### 練習2 象限判斷 第一象限 x>0 y>0 第二象限 x<0 y>0 第三象限 x<0 y<0 第四象限 x>0 y<0 ``` if __name__ == '__main__': x = int(input('請輸入x?')) y = int(input('請輸入y?')) if (x>0 and y>0): print('第一象限') elif (x<0 and y>0): print('第二象限') elif (x<0 and y<0): print('第三象限') else: print('第四象限') ``` ## 第五章(迴圈) ### 迴圈 遞增或遞減 條件不符何時結束 ### FOR ``` for i in range(5): print(i) ``` ### WHILE ``` i = 3 while i < 13: print(i) i = i + 1 ``` ### 練習1 平方和 輸入2 輸出 1 * 1 + 2 * 2 ``` if __name__ == '__main__': x = int(input('請輸入n?')) total = 0 for i in range(1,x+1): total += i * i print(total) ``` ### 練習2 列出 1 到 1000 不被2和3整除的數字 ``` if __name__ == '__main__': for num in range(1, 1001): if num % 2 != 0 and num % 3 != 0: print(num, end=" ") ``` ## 練習3 完全數 6的因數有1,2,3,6 1+2+3=6 ``` if __name__ == '__main__': per = [] for num in range(2, 1001): fac = [1] for i in range(2, int(num ** 0.5) + 1): if num % i == 0: fac.extend([i, num // i]) if sum(fac) == num: per.append(num) print(per) ``` ### 練習4 骰骰子 到6結束 ``` import random if __name__ == '__main__': while True: dice_roll = random.randint(1, 6) print(dice_roll) if dice_roll == 6: break ``` ## 第六章(函式) ### 函式 f(x) = x ``` def f(x): return x ``` ### 遞迴 f(x)=1++x ``` def f(x): if x == 1: return 0 else: return x + f(x-1) ``` ### 練習1 階層 ``` def f(x): if x < 1: return 1 else: return x * f(x-1) if __name__ == '__main__': x = int(input('請輸入x?')) print(f(x)) ```