# [資安實務] Python入門 上課講義➢ gg.gg/python1016 ## 變數型態 int:整數 float:浮點數 bool:布林值 str:字串 #### 字串相關函數 | 函數 | 意義 | | -------- | -------- | | len() | 計算字串的字數 | | <str>.split() | 將字串分割為[列表](#列表(list)) | ## 輸入與輸出 ### 輸出 語法如下: ``` print() ``` **[sep和end的用法]** sep (分隔字元) 預設為空白字元 end (結束字元) 預設為換行字元 ### 輸入 語法如下: ``` 變數(字串) = input() ``` 注意:輸入前不用先設一個變數 如果要輸入一個整數,可以使用int()函數 ## 運算子 ### 算術運算子 與其他程式語言相同, '+'表示加 '-'表示減 '*'表示乘 '%'表示餘數 不過也有部分運算子python特有的寫法: | 運算子 | 意義 | | ---- | ---- | | / | 除(帶小數點) | | // | 整除 | | ** | 次方 | ### 關係運算子 與其他程式語言相同,例如:'>'表示大於、'=='表示等於... ### 邏輯運算子 Python的邏輯運算子與其他程式語言寫法不同,如下: | 運算子 | 意義 | 其他語言寫法 | | ----- | ----- | ----- | | and | 且 | && | | or | 或 | \|\| | | not | 反相 | ! | ## 條件判斷 if-else 語法: ```python= if 條件1: 執行內容1 elif 條件2: #不是else if!!! 執行內容2 . . . else: 執行內容n ``` ## 迴圈 ### while迴圈 語法: ```python= while 條件: 執行內容 #重複執行到不滿足條件為止 ``` 也可以搭配else使用: ```python= while 條件1: 執行內容1 #重複執行到不滿足條件為止 else: 執行內容2 ``` ### for迴圈 ```python= for 變數 in 序列: 執行內容 ``` 序列的部分可填入range()函式、字串、列表... 假設說序列為字串"abcde", 迴圈會先執行a(變數=a),第二遍會執行b...,直到執行完e後結束。 #### **[range()函式]** ```python= for 變數 in range(起始值, 終止值, 遞增值): 執行內容 ``` 註:起始值預設為0,遞增值預設為1,皆可省略 **[利用python寫星星樹]** ```python= n = int(input()) a = n-1 b = 1 for i in range(n): for j in range(a): print(" ", end='') for j in range(b): print("*", end='') print() #換行 a -= 1 b += 2 ``` ## 序列 序列是一種用來儲存一系列數值的方式 Python中常見的序列有列表、字典、元組、集合 ### 列表(list) 以[ ]含括不同型態的資料 | 函數 | 意義 | | -------- | -------- | | len() | 計算列表元素的個數 | | <list>.append() | 新增一個新的元素到列表 | | <list>.sort( ) | 將列表由小到大排序 | [由大到小排序?] ``` <list>.sort(reverse = True) ``` ### 字典(dict) 以{ }含括key:value對應資料 ## 利用Python進行[編碼與解碼](https://hackmd.io/@hyu/BJ1CJ_AhY#%E7%B7%A8%E7%A2%BC%E8%88%87%E8%A7%A3%E7%A2%BC) #### 進位制轉換 ![](https://i.imgur.com/HcxvtNk.png) 除十進位皆以字串形式表示,並加上字首前綴 (二進位為0b,八進位為0o,十六進位為0x) #### ASCII 十進位轉為對應ASCII字元 ``` chr() ``` ASCII字元轉為十進位 ``` ord() ``` #### 摩斯電碼 利用字典紀錄對應的編碼,進行加解密 **[解密]** ```python= s = input().split() MORSE_CODE_DICT = { '.-':'A', '-...':'B', '-.-.':'C', '-..':'D', '.':'E', '..-.':'F', '--.':'G', '....':'H', '..':'I', '.---':'J', '-.-':'K', '.-..':'L', '--':'M', '-.':'N', '---':'O', '.--.':'P', '--.-':'Q', '.-.':'R', '...':'S', '-':'T', '..-':'U', '...-':'V', '.--':'W', '-..-':'X', '-.--':'Y', '--..':'Z', '/':' '} for i in range(len(s)): print(MORSE_CODE_DICT[s[i]], end='') print() ``` **[加密]** ```py= s = input().upper() #輸入要全部轉大寫 MORSE_CODE_DICT = { 'A':'.-', 'B':'-...', 'C':'-.-.', 'D':'-..', 'E':'.', 'F':'..-.', 'G':'--.', 'H':'....', 'I':'..', 'J':'.---', 'K':'-.-', 'L':'.-..', 'M':'--', 'N':'-.', 'O':'---', 'P':'.--.', 'Q':'--.-', 'R':'.-.', 'S':'...', 'T':'-', 'U':'..-', 'V':'...-', 'W':'.--', 'X':'-..-', 'Y':'-.--', 'Z':'--..', ' ':'/'} for i in range(len(s)): print(MORSE_CODE_DICT[s[i]], end='') if i != len(s)-1: print(end=' ') print() ``` ###### tags: `資安`