1. 程式人生 > >Python開發第一篇 基礎篇(下)

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