標籤:long 產生 enc 大於等於 不同的 反編譯 代碼 長整型 重新編譯
資料類型
- Numbers(數字) int -有符號整型 / long-長整型 / float-浮點型 / complex-複數
- String(字串)
- List(列表) []
- Tuple(元組) ()
- Dictionary(字典) {}
資料類型轉換
數字:int(x),long(x),float(x),complex(x)
字串:str(x):x 轉換為字串 repr() :x 轉換為運算式字串
對象:eval(str):用來計算在字串中的有效Python運算式,並返回一個對象
元組:tuple(s):將序列 s 轉換為一個元組
列表:list(s):將序列 s 轉換為一個列表
集合:set(s) 轉化成可變集合 frozenset(s):轉換不可變集合
字典:dict(d) :d 必須為序列(key,value)
chr(x):整數轉換為一個字元
unichr(x):整數轉換為Unicode字元
ord(x):字元轉換為它的整數值
hex(x):整數轉換為一個十六進位字串
oct(x):整數轉換為一個八進位字串
變數賦值
變數名=值 a=1
多變數賦值 a=b=c=2 a, b, c = 1, 2, ‘john‘
運算子
算術運算子: +:加 -:減 *:乘 /:除 ** :冪 //:取整除
比較元算符:==:等於 !=:不等於 <>:不等於 >:大於 >=:大於等於 <:小於 <=:小於等於
賦值運算子:=:等於 +=: c+=b c=c+b -=:c-=b c=c-b *=:c*=b c=c*b /=:c/=b c=c/b %=:c%=b c=c%b **=:c**=b c=c**b //=: c//=b c=c//b
位元運算符:& | ^ ~ << >>
邏輯運算子:and or not
成員運算子:in not in
身份運算子:is isnot
運算子優先順序別
| 運算子 |
描述 |
| ** |
指數 (最高優先順序) |
| ~ + - |
按位翻轉, 一元加號和減號 (最後兩個的方法名為 [email protected] 和 [email protected]) |
| * / % // |
乘,除,模數和取整除 |
| + - |
加法減法 |
| >> << |
右移,左移運算子 |
| & |
位 ‘AND‘ |
| ^ | |
位元運算符 |
| <= < > >= |
比較子 |
| <> == != |
等於運算子 |
| = %= /= //= -= += *= **= |
賦值運算子 |
| is is not |
身份運算子 |
| in not in |
成員運算子 |
| not or and |
邏輯運算子 |
什麼是pyc檔案
pyc是一種二進位檔案,是由py檔案經過編譯後,產生的檔案,是一種byte code,py檔案變成pyc檔案後,載入的速度有所提高,而且pyc是一種跨平台的位元組碼,是由python的虛擬機器來執行的,這個是類似於JAVA或者.NET的虛擬機器的概念。pyc的內容,是跟python的版本相關的,不同版本編譯後的pyc檔案是不同的,2.5編譯的pyc檔案,2.4版本的python是無法執行的。
為什麼需要pyc檔案
這個需求太明顯了,因為py檔案是可以直接看到源碼的,如果你是開發商業軟體的話,不可能把源碼也泄漏出去吧?所以就需要編譯為pyc後,再發布出去。當然,pyc檔案也是可以反編譯的,不同版本編譯後的pyc檔案是不同的,根據python源碼中提供的opcode,可以根據pyc檔案反編譯出py檔案源碼,網上可以找到一個反編譯python2.3版本的pyc檔案的工具,不過該工具從python2.4開始就要收費了,如果需要反編譯出新版本的pyc檔案的話,就需要自己動手了(俺暫時還沒這能力^--^),不過你可以自己修改python的原始碼中的opcode檔案,重新編譯python,從而防止不法分子的破解。
Python 基礎知識整理-1