Python開發第一篇 基礎篇(下)
一.python種類
1.1 Cpython
python官方版本,使用c語言實現,執行機制:先編譯,py(原始碼檔案)->pyc(位元組碼檔案),最終執行時先將位元組碼轉換成機器碼,然後交給cpu執行;
如果再次執行時,會優先尋找位元組碼檔案,若原始碼檔案被修改,則會再次編譯成位元組碼
1.2 Jython
Python語言的Java實現,不僅提供Python的庫,同時也提供所有的Java類。能執行在任何可相容的Java1.1或更高的Java虛擬機器平臺上。
執行機制:py(原始檔)->動態編譯成位元組碼(Java位元組碼)->然後在JVM中執行
由於最終執行會編譯成java位元組碼,所以對Java類無縫存取,對於與Java語言的互動效率極高
1.3 IronPython
Python語言的c#實現,由Jython的創始人創造
執行機制:原始碼檔案->C#位元組碼->CLR(公共語言執行庫)與(JVM類似)
1.4 PyPy
rPython實現的Python,rPython是Python的一個子集,Python語言的動態編譯器,它使用的是JIT(及時編譯器),
執行機制:先編譯 原始碼檔案->位元組碼->機器碼,然後直接由cpu執行
1.5 各版本總結
pypy與其他版本對比,編譯過程相對慢,但是執行效率是最高的,因為它是編譯成機器碼,cpu可以直接執行機器碼,
其他語言都需要再轉換成機器碼,然後交由cpu執行
二.傳遞引數
2.1新建python檔案,名為hello_args.py,輸入下面的程式碼
1 import sys
2 print(sys.argv)
通過python hello_args.py,螢幕列印輸出
['hello_args.py']
python hello_args.py hello world螢幕列印輸出
['hello_args.py', 'hello', 'world']
預設檔名本身則是argv[0],屬於第一個引數
如果要使用使用者傳遞的引數,可以通過下標方式獲取,操作方法與列表操作方法一樣
三. 內容編碼
3.1 針對2.x版本
python直譯器載入py檔案時,會對內容進行編碼(預設ascii)
ASCII(American Standard Code for Information Interchange,美國標準資訊交換程式碼)是基於拉丁字母的一套電腦編碼系統,
主要用於顯示現代英語和其他西歐語言。它是現今最通用的單位元組編碼系統,並等同於國際標準ISO/IEC 646。
在計算機中,所有的資料在儲存和運算時都要使用二進位制數表示(因為計算機用高電平和低電平分別表示1和0)
ASCII 碼使用指定的7 位或8 位二進位制數組合來表示128 或256 種可能的字元。標準ASCII 碼也叫基礎ASCII碼,使用7 位二進位制數來
表示所有的大寫和小寫字母,數字0 到9、標點符號, 以及在美式英語中使用的特殊控制字元。其中:
0~31及127(共33個)是控制字元或通訊專用字元(其餘為可顯示字元),
如控制符:LF(換行)、CR(回車)、FF(換頁)、DEL(刪除)、BS(退格)、BEL(響鈴)等;
通訊專用字元:SOH(文頭)、EOT(文尾)、ACK(確認)等;
ASCII值為8、9、10 和13 分別轉換為退格、製表、換行和回車字元。
它們並沒有特定的圖形顯示,但會依不同的應用程式,而對文字顯示有不同的影響。
32~126(共95個)是字元(32是空格),
其中48~57為0到9十個阿拉伯數字。
65~90為26個大寫英文字母,
97~122號為26個小寫英文字母,
其餘為一些標點符號、運算子號等。
3.2標準I表
Bin | Dec | Hex | 縮寫/字元 | 解釋 | |
0000 0000 | 0 | 00 | NUL(null) | 空字元 | |
0000 0001 | 1 | 01 | SOH(start of headline) | 標題開始 | |
0000 0010 | 2 | 02 | STX (start of text) | 正文開始 | |
0000 0011 | 3 | 03 | ETX (end of text) | 正文結束 | |
0000 0100 | 4 | 04 | EOT (end of transmission) | 傳輸結束 | |
0000 0101 | 5 | 05 | ENQ (enquiry) | 請求 | |
0000 0110 | 6 | 06 | ACK (acknowledge) | 收到通知 | |
0000 0111 | 7 | 07 | BEL (bell) | 響鈴 | |
0000 1000 | 8 | 08 | BS (backspace) | 退格 | |
0000 1001 | 9 | 09 | HT (horizontal tab) | 水平製表符 | |
0000 1010 | 10 | 0A | LF (NL line feed, new line) | 換行鍵 | |
0000 1011 | 11 | 0B | VT (vertical tab) | 垂直製表符 | |
0000 1100 | 12 | 0C | FF (NP form feed, new page) | 換頁鍵 | |
0000 1101 | 13 | 0D | CR (carriage return) | 回車鍵 | |
0000 1110 | 14 | 0E | SO (shift out) | 不用切換 | |
0000 1111 | 15 | 0F | SI (shift in) | 啟用切換 | |
0001 0000 | 16 | 10 | DLE (data link escape) | 資料鏈路轉義 | |
0001 0001 | 17 | 11 | DC1 (device control 1) | 裝置控制1 | |
0001 0010 | 18 | 12 | DC2 (device control 2) | 裝置控制2 | |
0001 0011 | 19 | 13 | DC3 (device control 3) | 裝置控制3 | |
0001 0100 | 20 | 14 | DC4 (device control 4) | 裝置控制4 | |
0001 0101 | 21 | 15 | NAK (negative acknowledge) | 拒絕接收 | |
0001 0110 | 22 | 16 | SYN (synchronous idle) | 同步空閒 | |
0001 0111 | 23 | 17 | ETB (end of trans. block) | 傳輸塊結束 | |
0001 1000 | 24 | 18 | CAN (cancel) | 取消 | |
0001 1001 | 25 | 19 | EM (end of medium) | 介質中斷 | |
0001 1010 | 26 | 1A | SUB (substitute) | 替補 | |
0001 1011 | 27 | 1B | ESC (escape) | 換碼(溢位) | |
0001 1100 | 28 | 1C | FS (file separator) | 檔案分割符 | |
0001 1101 | 29 | 1D | GS (group separator) | 分組符 | |
0001 1110 | 30 | 1E | RS (record separator) | 記錄分離符 | |
0001 1111 | 31 | 1F | US (unit separator) | 單元分隔符 | |
0010 0000 | 32 | 20 | (space) | 空格 | |
0010 0001 | 33 | 21 | ! | ||
0010 0010 | 34 | 22 | " | ||
0010 0011 | 35 | 23 | # | ||
0010 0100 | 36 | 24 | $ | ||
0010 0101 | 37 | 25 | % | ||
0010 0110 | 38 | 26 | & | ||
0010 0111 | 39 | 27 | ' | ||
0010 1000 | 40 | 28 | ( | ||
0010 1001 | 41 | 29 | ) | ||
0010 1010 | 42 | 2A | * | ||
0010 1011 | 43 | 2B | + | ||
0010 1100 | 44 | 2C | , | ||
0010 1101 | 45 | 2D | - | ||
0010 1110 | 46 | 2E | . | ||
00101111 | 47 | 2F | / | ||
00110000 | 48 | 30 | 0 | ||
00110001 | 49 | 31 | 1 | ||
00110010 | 50 | 32 | 2 | ||
00110011 | 51 | 33 | 3 | ||
00110100 | 52 | 34 | 4 | ||
00110101 | 53 | 35 | 5 | ||
00110110 | 54 | 36 | 6 | ||
00110111 | 55 | 37 | 7 | ||
00111000 | 56 | 38 | 8 | ||
00111001 | 57 | 39 | 9 | ||
00111010 | 58 | 3A | : | ||
00111011 | 59 | 3B | ; | ||
00111100 | 60 | 3C | < | ||
00111101 | 61 | 3D | = | ||
00111110 | 62 | 3E | > | ||
00111111 | 63 | 3F | ? | ||
01000000 | 64 | 40 | @ | ||
01000001 | 65 | 41 | A | ||
01000010 | 66 | 42 | B | ||
01000011 | 67 | 43 | C | ||
01000100 | 68 | 44 | D | ||
01000101 | 69 | 45 | E | ||
01000110 | 70 | 46 | F | ||
01000111 | 71 | 47 | G | ||
01001000 | 72 | 48 | H | ||
01001001 | 73 | 49 | I | ||
01001010 | 74 | 4A | J | ||
01001011 | 75 | 4B | K | ||
01001100 | 76 | 4C | L | ||
01001101 | 77 | 4D | M | ||
01001110 | 78 | 4E | N | ||
01001111 | 79 | 4F | O | ||
01010000 | 80 | 50 | P | ||
01010001 | 81 | 51 | Q | ||
01010010 | 82 | 52 | R | ||
01010011 | 83 | 53 | S | ||
01010100 | 84 | 54 | T | ||
01010101 | 85 | 55 | U | ||
01010110 | 86 | 56 | V | ||
01010111 | 87 | 57 | W | ||
01011000 | 88 | 58 | X | ||
01011001 | 89 | 59 | Y | ||
01011010 | 90 | 5A | Z | ||
01011011 | 91 | 5B | [ | ||
01011100 | 92 | 5C | \ | ||
01011101 | 93 | 5D | ] | ||
01011110 | 94 | 5E | ^ | ||
01011111 | 95 | 5F | _ | ||
01100000 | 96 | 60 | ` | ||
01100001 | 97 | 61 | a | ||
01100010 | 98 | 62 | b | ||
01100011 | 99 | 63 | c | ||
01100100 | 100 | 64 | d | ||
01100101 | 101 | 65 | e | ||
01100110 | 102 | 66 | f | ||
01100111 | 103 | 67 | g | ||
01101000 | 104 | 68 | h | ||
01101001 | 105 | 69 | i | ||
01101010 | 106 | 6A | j | ||
01101011 | 107 | 6B | k | ||
01101100 | 108 | 6C | l | ||
01101101 | 109 | 6D | m | ||
01101110 | 110 | 6E | n | ||
01101111 | 111 | 6F | o | ||
01110000 |
|