# Python ## 01 ''' 題目內容:依序輸入國、英、數三科成績,其權值分別為國文4倍、英文3倍、數學3倍,請計算加權平均(國文成績*4+英文成績*3+數學成績*3/10) 請將底線處填入適當的程式碼 ''' ch, en, ma = int(input()), int(input()), int(input()) # int() 將文字強制轉整數 avg = (ch*4+en*3+ma*3)/10 print(avg) ## 02 ''' 題目內容:輸入兩點座標(x1, y1), (x2, y2),輸出兩點距離 請將底線處填入適當的程式碼 ''' x1, y1, x2, y2 = float(input()), float(input()), float(input()), float(input()) # float() 將文字強制轉浮點數(俗稱小數) dist = ((x2-x1)**2+(y2-y1)**2)**0.5 print(dist) ## 03 ''' 題目內容:輸入一個數,請判斷其為奇偶數 請將底線處填入適當的程式碼 ''' n = int(input()) if (n%2==0): print("偶數") else: print("奇數") ## 04 ''' 題目內容:輸入一個數,請依下列原則輸出對應結果 3*k(3的倍數) ==> Good 3*k+1 ==> SoSo 3*k+2 ==> Bad ''' n=int(input()) if (n%3==0): print('Good') elif (n%3==1): print('SoSo') else: print('Bad') ## 05 ''' 題目內容:輸入西元年,請判斷其為閏年或平年 閏年判斷:西元年被400整除 或 西元年被4整除且不被100整除 請將底線處填入適當的程式碼 ''' y = int(input()) if ((y%400==0) or (y%4==0 and y%100!=0)): print("閏年") else: print("平年") ## 06 ''' 題目內容:輸入一個數,請計算所有數字和 例如:輸入2469,輸出21 (2+4+6+9) 請將底線處填入適當的程式碼 ''' n = int(input()) # 整數版本寫法 sum = 0 while (n!=0): # 直到n變成0為止 sum =(sum+n%10) # 重覆一: 將n的個位數加至總和sum n =n//10 # 重覆二: 將n的個位數去除 print(sum) ## 07 ''' 題目內容:輸入一個數,請計算所有數字和 例如:輸入2469,輸出21 (2+4+6+9) 請將底線處填入適當的程式碼 ''' n = input() # 字串版本寫法 sum = 0 for x in n: # 走訪字串n的每個字元,存到變數x sum =sum+int(x) # 將變數x轉成整數加至總和sum print(sum) ## 08 ''' 題目內容:終極密碼遊戲,電腦隨機從1-100取一個亂數當做密碼,玩家猜錯電腦會給提示 請將底線處填入適當的程式碼 ''' import random # 匯入random模組 ans = random.randint(1,100) # 利用random模組的randint()函數,從1到100之間取一個亂數 print('請猜一個1~100的數字') play = True while(play): guess = int(input('來隨便猜一個數字吧: ')) if (guess>ans): print('喔你猜得太大囉') elif (guess<ans): print('喔你猜得太小囉') else: print('恭喜你猜對了!') play = False ## 09 ![](https://i.imgur.com/4r9V8Ow.png) ''' 題目內容:輸入n個數,中間以空白間隔,請計算此n數和 [再進化版] 例如:輸入20 30 40,輸出90 ''' num = [int(x) for x in input().split()] # 此稱之為List Comprehension 列表建構 print(sum(num))) ## 10 ''' 線上解題常會遇到測試資料一行有多個數值 可以用以下方法解決 ''' a, b, c = [int(x) for x in input().split()] # 若題目告知輸入三數以空白間隔,亦可用此方法存入a, b, c三個變數 ## 11 迴圈回應到100 from pwn import* r=remote("140.110.112.213" ,2403) r.recvlines(3) for i in range(100): print(r.recvlines(2)) r.sendline(str(i+1).encode()) print(str(i+1)) print(r.recvline()) r.close() ## 12 找出第三大的數字 from pwn import* r=remote("140.110.112.213" ,2400) r.recvlines(6) r.recvuntil(b'numbers : ') l=r.recvline() num=[int(x) for x in l.split()] num.sort(reverse=True) r.sendlineafter(b"answer : ",str(num[2]).encode()) print(r.recvline()) r.close()