Python入門基礎篇
1.編程語言介紹.
1.機器語言:直接用二進制編程,直接對硬件的控制,需對硬件掌握比較深。
優點:執行效率快
缺點:開發效率低下
2.匯編語言:用英文標簽代替二進制編程寫程序,直接對硬件的控制,需對硬件掌握比較深。
優點:開發效率比機器語言高
缺點:仍然沒有改變直接對硬件的操控
3.高級語言:直接用人類的語言去編程,不需要掌握對硬件的操作細節
編譯型語言:類似谷歌翻譯,經過一次翻譯,以後拿結果去執行
優點:執行效率高於解釋型
缺點:開發效率低於解釋型
解釋型語言:類似同聲翻譯。
優點:開發效率高於解釋型
缺點:執行效率低於編譯型
總結:
執行效率排序:機器語言 》匯編語言 》高級語言(編譯型 》解釋型)
開發效率排序:機器語言 《匯編語言 《高級語言(編譯型 《解釋型)
PS:
學習難度從高到低
執行效率從高到低
開發效率從低到高
速度不是關鍵(瓶頸理論),開發效率高才是王道
#機器語言 由於計算機內部只能接受二進制代碼,因此,用二進制代碼0和1描述的指令稱為機器指令,全部機器指令的集合構成計算機的機器語言,用機器語言編程的程序稱為目標程序。只有目標程序才能被計算機直接識別和執行。但是機器語言編寫的程序無明顯特征,難以記憶,不便閱讀和書寫,且依賴於具體機種,局限性很大,機器語言屬於低級語言。 用機器語言編寫程序,編程人員要首先熟記所用計算機的全部指令代碼和代碼的涵義。手編程序時,程序員得自己處理每條指令和每一數據的存儲分配和輸入輸出,還得記住編程過程中每步所使用的工作單元處在何種狀態。這是一件十分繁瑣的工作。編寫程序花費的時間往往是實際運行時間的幾十倍或幾百倍。而且,編出的程序全是些0和1的指令代碼,直觀性差,還容易出錯。除了計算機生產廠家的專業人員外,絕大多數的程序員已經不再去學習機器語言了。 機器語言是微處理器理解和使用的,用於控制它的操作二進制代碼。 盡管機器語言好像是很復雜的,然而它是有規律的。 存在著多至100000種機器語言的指令。這意味著不能把這些種類全部列出來。 以下是一些示例: 指令部份的示例 代表 加載(LOAD) 代表 存儲(STORE) ... 暫存器部份的示例 代表暫存器 A 代表暫存器 B ... 存儲器部份的示例 代表地址為 0 的存儲器 代表地址為View Code1 的存儲器 代表地址為 16 的存儲器 代表地址為 2^11 的存儲器 集成示例 0000,0000,000000010000 代表 LOAD A, 16 0000,0001,000000000001 代表 LOAD B, 1 0001,0001,000000010000 代表 STORE B, 16 0001,0001,000000000001 代表 STORE B, 1[1] #匯編語言 匯編語言的實質和機器語言是相同的,都是直接對硬件操作,只不過指令采用了英文縮寫的標識符,更容易識別和記憶。它同樣需要編程者將每一步具體的操作用命令的形式寫出來。匯編程序的每一句指令只能對應實際操作過程中的一個很細微的動作。例如移動、自增,因此匯編源程序一般比較冗長、復雜、容易出錯,而且使用匯編語言編程需要有更多的計算機專業知識,但匯編語言的優點也是顯而易見的,用匯編語言所能完成的操作不是一般高級語言所能夠實現的,而且源程序經匯編生成的可執行文件不僅比較小,而且執行速度很快。 匯編的hello world,打印一句hello world, 需要寫十多行,也是醉了。 ; hello.asm section .data ; 數據段聲明 msg db"Hello, world!", 0xA ; 要輸出的字符串 len equ $ - msg ; 字串長度 section .text ; 代碼段聲明 global _start ; 指定入口函數 _start: ; 在屏幕上顯示一個字符串 mov edx, len ; 參數三:字符串長度 mov ecx, msg ; 參數二:要顯示的字符串 mov ebx, 1 ; 參數一:文件描述符(stdout) mov eax, 4 ; 系統調用號(sys_write) int 0x80 ; 調用內核功能 ; 退出程序 mov ebx, 0 ; 參數一:退出代碼 mov eax, 1 ; 系統調用號(sys_exit) int 0x80 ; 調用內核功能 #高級語言 高級語言是大多數編程者的選擇。和匯編語言相比,它不但將許多相關的機器指令合成為單條指令,並且去掉了與具體操作有關但與完成工作無關的細節,例如使用堆棧、寄存器等,這樣就大大簡化了程序中的指令。同時,由於省略了很多細節,編程者也就不需要有太多的專業知識。 高級語言主要是相對於匯編語言而言,它並不是特指某一種具體的語言,而是包括了很多編程語言,像最簡單的編程語言PASCAL語言也屬於高級語言。 高級語言所編制的程序不能直接被計算機識別,必須經過轉換才能被執行,按轉換方式可將它們分為兩類: 編譯類:編譯是指在應用源程序執行之前,就將程序源代碼“翻譯”成目標代碼(機器語言),因此其目標程序可以脫離其語言環境獨立執行(編譯後生成的可執行文件,是cpu可以理解的2進制的機器碼組成的),使用比較方便、效率較高。但應用程序一旦需要修改,必須先修改源代碼,再重新編譯生成新的目標文件(* .obj,也就是OBJ文件)才能執行,只有目標文件而沒有源代碼,修改很不方便。 編譯後程序運行時不需要重新翻譯,直接使用編譯的結果就行了。程序執行效率高,依賴編譯器,跨平臺性差些。如C、C++、Delphi等 解釋類:執行方式類似於我們日常生活中的“同聲翻譯”,應用程序源代碼一邊由相應語言的解釋器“翻譯”成目標代碼(機器語言),一邊執行,因此效率比較低,而且不能生成可獨立執行的可執行文件,應用程序不能脫離其解釋器(想運行,必須先裝上解釋器,就像跟老外說話,必須有翻譯在場),但這種方式比較靈活,可以動態地調整、修改應用程序。如Python、Java、PHP、Ruby等語言。 機器語言、匯編語言、高級語言詳解
2.安裝Python解釋器,實現多版本共存。
Python目前已支持所有主流操作系統,在Linux,Unix,Mac系統上自帶Python環境,在Windows系統上需要安裝一下,超簡單
打開官網 https://www.python.org/downloads/windows/ 下載中心
#測試安裝是否成功 windows --> 運行 --> 輸入cmd ,然後回車,彈出cmd程序,輸入python,如果能進入交互環境 ,代表安裝成功。
#多版本共存演示 註意:在安裝目錄下找到python.exe,拷貝一份,命名為python2.exe或python3.exe,一定要保留原版,因為pip工具會調用它。
3.python運行的兩種方式:
方式一:交互模式
優點:輸入一行代碼 則就會輸出結果
缺點:代碼無法永久保存
方式二(命令行):python D:\text.txt
優點:以文件的方式把所有的代碼保存了下來
註意:
1.運行Python程序是不考慮文件後綴的,但約定俗成,應該將D:\text.txt改為D:\text.py
2.運行Python程序的三個步驟:
1.首先啟動Python解釋器
2.將Python程序中普通的文本文件讀入內存
3.python解釋器解釋執行剛剛讀入內存的代碼,開始識別python的語法
4.變量
1.什麽是變量?
#量指的是記錄事物的狀態 #變指的是事物的狀態是可以改變的
2.為什麽要用變量
#程序執行的本質就是一系列狀態的變化,變是程序執行的直接體現,所以我們需要有一種機制能夠反映或者說是保存下來程序執行時狀態以及狀態的變化。
3.如何定義變量
#變量名(相當於門牌號,指向值所在的空間),等號,變量值 name=‘ZhaoKang‘ sex=‘male‘ age=18 level=10
4.變量的定義規範
#1. 變量名只能是 字母、數字或下劃線的任意組合 #2. 變量名的第一個字符不能是數字 #3. 關鍵字不能聲明為變量名[‘and‘, ‘as‘, ‘assert‘, ‘break‘, ‘class‘, ‘continue‘, ‘def‘, ‘del‘, ‘elif‘, ‘else‘, ‘except‘,
‘exec‘, ‘finally‘, ‘for‘, ‘from‘, ‘global‘, ‘if‘, ‘import‘, ‘in‘, ‘is‘, ‘lambda‘, ‘not‘, ‘or‘, ‘pass‘, ‘print‘, ‘raise‘, ‘return‘, ‘try‘, ‘while‘, ‘with‘, ‘yield‘]
5. 定義方式:
#駝峰體 ZhaoKang = 56 #下劃線(推薦使用) zhao_kang = 56
6.定義變量名不好的方式
#1. 變量名為中文、拼音 #2. 變量名過長 #3. 變量名詞不達意
7.定義變量會有:id,type,value
#1 等號比較的是value, #2 is比較的是id #強調: #1. id相同,意味著type和value必定相同 #2. value相同type肯定相同,但id可能不同,如下 >>> x=‘Info ZhaoKang:18‘ >>> y=‘Info ZhaoKang:18‘ >>> id(x) 62880928 >>> id(y) 61823240 >>> >>> x == y True >>> x is y False
5.內存管理
垃圾回收機制:引用計數
引用計數增加: age=18 #18的引用計數為1 x=age #18的引用計數為2 引用計數減少: del age #18的引用計數減1 x=10 #18的引用計數為0
Python入門基礎篇