Python執行一個程序分爲三個階段php
階段一:先啓動python解釋器java
階段二:python解釋器把硬盤中的文件讀入到內存中python
階段三:python解釋器解釋執行剛剛讀入內存的代碼linux
2、編程語言的分類:程序員
一:機器語言:機器語言是用二進制代碼表示的計算機能直接識別和執行的一種機器指令的集合。
優勢:靈活、直接執行和速度快。
缺點:不一樣型號的計算機其機器語言是不相通的,按着一種計算機的機器指令編制的程序,不能在另外一種計算機上執行。 二:彙編語言:彙編語言的實質和機器語言是相同的,都是直接對硬件操做,只不過指令採用了英文縮寫的,標識符更容易識別和記憶。它一樣須要編程者將每一步具體的操做用命令的形式寫出來。
優勢:能完成通常高級語言所不能實現的操做,並且源程序經彙編生成的可執行文件比較小,且執行速度很快。
缺點:源程序比較冗長、複雜、容易出錯,並且使用匯編語言編程須要有更多的計算機專業知識。 三:高級語言:明確地講,高級語言就是說人話,用人類能讀懂的(好比英文)字符編程。高級語言是絕大多數編程者的選擇。和彙編語言相比,它不但將許多相關的機器指令合成爲單條指令而且去掉了與具體操做有關但與完成工做無關的細節,例如使用堆棧、寄存器等。
優勢:大大簡化了程序中的指令。同時,因爲省略了不少細節,編程者也就不須要有太多的專業知識。
缺點:高級語言所編制的程序不能直接被計算機識別,必須通過轉換才能被執行。
按轉換方式可將它們分爲兩類: 解釋類:執行方式相似於咱們平常生活中的「同聲翻譯」,應用程序源代碼一邊由相應語言的解釋器「翻譯」成目標代碼(如python程序,先翻譯/編譯成字節碼,而後由解釋器解釋執行,這個過程程序員都無需關心了,享受這種便利便可),一邊執行
優勢:這種方式比較靈活,調試程序極爲方便,程序一旦出錯,當即調試當即就能夠測試結果
缺點:效率比較低,並且不能生成可獨立執行的可執行文件,應用程序不能脫離其解釋器。只在執行程序時,才一條一條的解釋成機器語言給計算機來執行,因此運行速度是不如編譯後的程序運行的快的.
編譯類:編譯是指在程序執行以前,就將程序源代碼「翻譯」成機器指令,並保存成二進制文件 優勢:編譯後的代碼能夠直接在機器上運行,運行速度比解釋型要高。 缺點:調試程序麻煩,程序一旦須要修改,必須先修改源代碼,再從新編譯後才能執行。
總結:編程語言經歷了:機器語言-------->彙編語言------------>高級語言(java,C#,php,ruby,python)編程
1:開發效率從低到高ruby
2:執行效率從高到低編程語言
3:掌握難度從難到易測試
註解:執行效率不是問題,硬件已經足夠用,因而開發效率成了關鍵,於是高級語言在當今世界大行其道。spa
3、Python簡介
注:
1. 首先須要知道,只有在import導入py文件時,纔會產生pyc字節碼文件,該字節碼文件是能夠代替源文件而直接執行的
2. 但每次執行py文件,產生的字節碼並不會保留下來,也就是說,每次執行py文件,都是要從新經歷一遍:py文件->字節碼-->python解釋器-->機器碼,每次都是一個從新解釋執行的過程。
4、linux環境下更新python
1 查看默認Python版本 2 python -V 3 4 1、安裝gcc,用於編譯Python源碼 5 yum install gcc 6 2、下載源碼包,https://www.python.org/ftp/python/ 7 3、解壓並進入源碼文件 8 4、編譯安裝 9 ./configure 10 make all 11 make install 12 5、查看版本 13 /usr/local/bin/python2.7 -V 14 6、修改默認Python版本 15 mv /usr/bin/python /usr/bin/python2.6 16 ln -s /usr/local/bin/python2.7 /usr/bin/python 17 7、防止yum執行異常,修改yum使用的Python版本 18 vi /usr/bin/yum 19 將頭部 #!/usr/bin/python 修改成 #!/usr/bin/python2.6
5、python入門
文件頭
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*-
當行注視:# 被註釋內容
多行註釋:''' 被註釋內容 '''
Python有大量的模塊,從而使得開發Python程序很是簡潔。類庫有包括三中:
Python內部提供一個 sys 的模塊,其中的 sys.argv 用來捕獲執行執行python腳本時傳入的參數
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 import sys 5 6 print sys.argv
執行Python代碼時,若是導入了其餘的 .py 文件,那麼,執行過程當中會自動生成一個與其同名的 .pyc 文件,該文件就是Python解釋器編譯以後產生的字節碼。
ps:代碼通過編譯能夠產生字節碼;字節碼經過反編譯也能夠獲得代碼。
6、變量
#!/usr/bin/env python name='egon' #變量的聲明
name #經過變量名,引用變量的值
print(name) #引用而且打印變量名name對應的值,即'egon'
輸入輸出
python2中全部raw_input與python3的input是一個意思
特色:把全部用戶的輸入都轉成字符串類型
python2中有input
特色:用戶輸入什麼類型,就存成什麼類型
%控制輸出打印位置
import getpass 隱藏密碼輸入
6、簡單運算符
一、算數運算:
二、比較運算:
三、賦值運算:
四、位運算:
注: ~ 舉例: ~5 = -6 解釋: 將二進制數+1以後乘以-1,即~x = -(x+1),-(101 + 1) = -110
按位反轉僅能用在數字前面。因此寫成 3+~5 能夠獲得結果-3,寫成3~5就出錯了
五、邏輯運算:
邏輯運算符優先級:從高到低:not > and > or
Ture and False or False => False or False => False
not Ture and False or False => False and False or False => False or False => False
Ture or False and not False => Ture or False and Ture => Ture or False => Ture
and註解:
or註解:
and-or結合使用:
(1 and 'x') or 'y'
六、成員運算:
7.身份運算
8.運算符優先級:自上而下,優先級從高到低