# 2023-04-15 Python入門 ###### tags: `python` ## random隨機產生整數 ```python= import random # 隨機產生1~3之間的整數並存放到變數a a = random.randint(1, 3) # 指派 print(a) ``` ```python= import random # 隨機產生1~3之間的整數並存放到變數a a = random.randint(1, 3) # 指派 print(a) b = ['aaron', 'andy', 'abner'] random.shuffle(b) print(b) ``` #### 猜數字 寫一成是 ``` import random # 隨機產生1~9之間整數 pc = random.randint(1, 9) print('答案:', pc) # 讓使用者輸入一個數字 player = input('請輸入1~9之間的整數:') if pc == int(player): print('恭喜,猜對了') else: # 當pc == player結果為False的時候, else裡面的程式碼會被執行 print('可惜,猜錯了1') print('可惜,猜錯了2') print('可惜,猜錯了3') print('可惜,猜錯了4') print('可惜,猜錯了5') ``` #### if多重分支 ``` student_score = int(input('請輸入成績:')) if student_score == 100: print('棒') elif student_score >= 90: print('好') elif student_score >= 80: print('可') elif student_score >= 70: print('OK') elif student_score >= 60: print('恩') else: print('不行') ``` #### 如果想讓所有幅條件的都執行 ``` student_score = int(input('請輸入成績:')) if student_score == 100: print('棒') if student_score >= 90: print('好') if student_score >= 80: print('可') if student_score >= 70: print('OK') if student_score >= 60: print('恩') else: print('不行') ``` #### ```python= user = int(input('請輸入一個數字:')) # if user % 2 == 1: # print('奇數') # if user % 2 == 0: # print('偶數') # if user % 2 == 1: # print('奇數') # else: # print('偶數') a = '奇數' if user % 2 == 1 else '偶數' print(a) print('奇數' if user % 2 == 1 else '偶數') ``` #### 猜拳遊戲 ```python= import random data = ['剪刀', '石頭', '布'] # 電腦出拳 pc = random.randint(0, 2) # 0=剪刀, 1=石頭, 2=布 print('電腦:', data[pc]) # 玩家出拳 player = int(input('請出拳(0=剪刀, 1=石頭, 2=布):')) print('玩家:', data[player]) if pc == 0 and player == 1: print('你贏了') elif pc == 0 and player == 2: print('你輸了') elif pc == 1 and player == 0: print('你輸了') elif pc == 1 and player == 2: print('你贏了') elif pc == 2 and player == 0: print('你輸了') elif pc == 2 and player == 1: print('你贏了') else: print('平手') ``` #### while ``` import random pc = random.randint(0, 5) print('答案:', pc) while True: player = int(input('請輸入一個數字:')) if pc == player: print('猜對了,你可以離開了') break # 結束迴圈 else: print('猜錯了,請繼續...') ``` #### while練習 ```python= data = [] while True: user = input('請輸入一個數字(quit=離開):') if user.lower() == 'quit': print('結束') break else: data.append(int(user)) print(data) ``` #### set ```python= a = {1, 2, 3, 4} b = {3, 4, 5, 6} c = a & b # 交集, 位元運算and print('交集:', c) c = a | b # 聯集, 位元運算or print('聯集:', c) c = a - b # 差集 print('差集:', c) c = a ^ b # 對稱差集 print('對稱差集:', c) ``` #### unpack ``` a = [1, 2, 3, 4, 5, 6] b = (5, 6, 7, 8) a1, *a2, a3, a4 = a b1, b2, b3, b4 = b print(a1) print(a2) print(a3) # print(b4) ``` #### dict ``` a = {'aa':3, 'bb':4} a['aa'] = 99 a['cc'] = 999 # 對著不存在的key指派資料,該筆資料就會新增 del a['bb'] print(a, len(a)) print(a.keys()) print(a.values()) ``` #### range() ``` a = range(0, 10) print(list(a)) a = range(1, 10, 2) print(list(a)) a = range(10, 0, -2) print(list(a)) for n in range(0, 100): print(n) ``` #### 階乘 ``` a = int(input('請輸入一個數字:')) result = 1 for n in range(1, a + 1): result *= n print(f'{a}的階乘為{result}') ``` #### ```python= a = [3, 4, 9, 23, 48] for n in a: if n % 2 == 1: continue print(n) ``` #### for-comprehension ``` a = [30, 40, 55, 49, 68, 23, 12] # b = [] # for n in a: # b.append(n + 30) b = [n + 30 for n in a] print(b) ``` #### 幾A幾B遊戲 ```python= import random a = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] random.shuffle(a) answer = a[0] + a[1] + a[2] + a[3] print(f'答案是: {answer}') guess_count = 0 # 紀錄猜幾次 while True: player = input('請輸入四個數字(不可重複):') guess_count += 1 # 增加次數 # 判斷輸入的是不是數字 try: int(player) except: print('輸入的數字有問題') continue # 判斷數字有沒有重複 if len(set(player)) != 4: print('數字不可重複') continue # 猜對了 if answer == player: print(f'猜對了,總共猜了{guess_count}次.') break # 提示A跟B how_many_a = 0 how_many_b = 0 # 算出幾A if answer[0] == player[0]: how_many_a += 1 if answer[1] == player[1]: how_many_a += 1 if answer[2] == player[2]: how_many_a += 1 if answer[3] == player[3]: how_many_a += 1 # 算出幾B if player[0] in answer and player[0] != answer[0]: how_many_b += 1 if player[1] in answer and player[1] != answer[1]: how_many_b += 1 if player[2] in answer and player[2] != answer[2]: how_many_b += 1 if player[3] in answer and player[3] != answer[3]: how_many_b += 1 print(f'{how_many_a}A{how_many_b}B, 目前已經猜了{guess_count}次') ``` #### 連續技 ``` a = 'abcdef' # a.b.c.d.e.f # b = '.'.join(a) # print(b) # c = b.replace('.', '-') # print(c) # d = c.replace('-', '') # print(d) print('.'.join(a).replace('.', '-').replace('-', '')) ```