# Python ``` ''' 題目內容:輸入兩點座標(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) ``` # 1 ## 說明功能 input 輸入 print 輸出 # 2 ''' n = input() # 字串版本寫法 sum = 0 for x in n: # 走訪字串n的每個字元,存到變數x sum = sum+int(x) # 將變數x轉成整數加至總和sum ''' # 3 print(sum) ''' 題目內容:終極密碼遊戲,電腦隨機從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): prin6t('喔你猜得太小囉') else: print('恭喜你猜對了!') play = False # 4 ''' 題目內容:輸入一個數,請計算所有數字和 例如:輸入2469,輸出21 (2+4+6+9) 請將底線處填入適當的程式碼 ''' print(sum([int(x) for x in input()])) ![](https://i.imgur.com/4eD0Op1.png) ## 切割 ''' 線上解題常會遇到測試資料一行有多個數值 可以用以下方法解決 ''' a, b, c = [int(x) for x in input().split()] # 若題目告知輸入三數以空白間隔,亦可用此方法存入a, b, c三個變數 # 5 ## 轉ASCII ''' 題型:ASCII值 ==> 字元 (ASCII解碼) 題目內容:輸入一串10進位的ASCII值(以空白間隔),請輸出其解碼結果 範例輸入:72 97 112 112 121 67 84 70 123 76 50 95 80 121 116 104 111 110 125 範例輸出:HappyCTF{L2_Python} 請將底線處填入適當的程式碼 ''' for x in input().split(): # 注意 x 的資料型態是字串 print(chr(int(x)), end='') # 想法: 把字串 x ==> 整數 ==> 字元 # 6 ''' 線上解題常會遇到測試資料一行有多個數值 可以用以下方法解決 ''' a, b, c = [int(x) for x in input().split()] # 若題目告知輸入三數以空白間隔,亦可用此方法存入a, b, c三個變數 # 7 ## 1至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.recvlins()) r.close() # 8 ## 找第三大的數字 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("answer : ", str(num[2]).encode()) print(r.recvline()) r.close()