Python 全棧開發一 python初識
1.Python簡介
python的創始人為吉多·範羅蘇姆(Guido van Rossum)。1989年的聖誕節期間,吉多·範羅蘇姆為了在阿姆斯特丹打發時間,決心開發一個新的腳本解釋程序,作為ABC語言的一種繼承。Python崇尚優美、清晰、簡單,是一個優秀並廣泛使用的語言。
Python是一樣什麽類型的語言
Python是一種強類型定義的解釋型的動態語言。
強類型與弱類型語言的區別:
強類型定義語言
一種總是強制類型定義的語言。Java和Python是強制類型定義的。如果你有一個整數,如果不顯示地進行轉換,你不能將其視為一個字符串。如果你定義了一個整型變量a,那麽程序根本不可能將a當作字符串類型處理。強類型定義語言是類型安全的語言。
弱類型定義語言
數據類型可以被忽略的語言。它與強類型定義語言相反, 一個變量可以賦不同數據類型的值。常見有vb,php。
靜態類型與動態類型的區別:
靜態類型定義語言
一種在編譯時,數據類型是固定的語言。大多數靜態類型定義語言強制這一點,它要求你在使用所有變量之前要聲明它們的數據類型。Java和C是靜態類型定義語言。
動態類型定義語言
一種在執行期間才去發現數據類型的語言,與靜態類型定義相反。VBScript和Python是動態類型定義的,因為它們是在第一次給一個變量賦值的時候找出它的類型的。
解釋型與編譯型語言的區別:
解釋型語言
解釋型是在運行的時候將程序翻譯成機器語言,所以運行速度相對於編譯型語言要慢。例如Python,C#,java
編譯型語言
編譯型語言在程序執行之前,有一個單獨的編譯過程,將程序翻譯成機器語言,以後執行這個程序的時候,就不用再進行翻譯了。例如C/C++
python語言的優缺點:
優點:
- Python的定位是“優雅”、“明確”、“簡單”,所以Python程序看上去總是簡單易懂,初學者學Python,不但入門容易,而且將來深入下去,可以編寫那些非常非常復雜的程序。
- 開發效率非常高,Python有非常強大的第三方庫,基本上你想通過計算機實現任何功能,Python官方庫裏都有相應的模塊進行支持,直接下載調用後,在基礎庫的基礎上再進行開發,大大降低開發周期,避免重復造輪子。
- 高級語言————當你用Python語言編寫程序的時候,你無需考慮諸如如何管理你的程序使用的內存一類的底層細節
- 可移植性————由於它的開源本質,Python已經被移植在許多平臺上(經過改動使它能夠工 作在不同平臺上)。如果你小心地避免使用依賴於系統的特性,那麽你的所有Python程序無需修改就幾乎可以在市場上所有的系統平臺上運行
- 可擴展性————如果你需要你的一段關鍵代碼運行得更快或者希望某些算法不公開,你可以把你的部分程序用C或C++編寫,然後在你的Python程序中使用它們。
- 可嵌入性————你可以把Python嵌入你的C/C++程序,從而向你的程序用戶提供腳本功能。
缺點:
- 速度慢,Python 的運行速度相比C語言確實慢很多,跟JAVA相比也要慢一些,因此這也是很多所謂的大牛不屑於使用Python的主要原因,但其實這裏所指的運行速度慢在大多數情況下用戶是無法直接感知到的,必須借助測試工具才能體現出來,比如你用C運一個程序花了0.01s,用Python是0.1s,這樣C語言直接比Python快了10倍,算是非常誇張了,但是你是無法直接通過肉眼感知的,因為一個正常人所能感知的時間最小單位是0.15-0.4s左右,哈哈。其實在大多數情況下Python已經完全可以滿足你對程序速度的要求,除非你要寫對速度要求極高的搜索引擎等,這種情況下,當然還是建議你用C去實現的。
- 代碼不能加密,因為PYTHON是解釋性語言,它的源碼都是以名文形式存放的,不過我不認為這算是一個缺點,如果你的項目要求源代碼必須是加密的,那你一開始就不應該用Python來去實現。
- 線程不能利用多CPU問題,這是Python被人詬病最多的一個缺點,GIL即全局解釋器鎖(Global Interpreter Lock),是計算機程序設計語言解釋器用於同步線程的工具,使得任何時刻僅有一個線程在執行,Python的線程是操作系統的原生線程。在Linux上為pthread,在Windows上為Win thread,完全由操作系統調度線程的執行。一個python解釋器進程內有一條主線程,以及多條用戶程序的執行線程。即使在多核CPU平臺上,由於GIL的存在,所以禁止多線程的並行執行。
2.Hello World 程序
因為python2與python3在用戶輸入上有所區別,但考慮到接下來python3迅速普及,python上一些雞肋的操作被取消,所以接下來的代碼都以python3為準。
hello world程序
print(‘Hello World!‘) #直接輸出在屏幕上,Linux上有自帶的python
#創建文件執行即可,Windows上可以用下在的shell下執行
用戶輸入:
a = input(‘請輸入內容:‘) #該程序執行後會提示用戶輸入
用戶輸入的內容會別賦值給變量a。註意用戶輸入的內容會被定義為字符串,即使輸入的是數字,也會被定義為字符串,想要得到對應的數值類型,必須用對應的方法進行轉換。
b = int(input(‘請輸入一個數字:‘)) #輸入的數值為字符串,但會經過int轉換為整型。
3.變量的定義規則
- 只能是由字母,數字,和下劃線組成。
- 必須是由字母或下劃線開頭。
- 不能是關鍵字。
- 最好每個變量為英文單詞,有一定的意義,方便閱讀代碼。
- 若想要定義一個不被人修改的變量,可以全部由大寫字母組成。
1 name = ‘wallace‘ #即姓名為wallace
4.常用的數值類型
常見的數值類型有整形(int),浮點型(float),布爾型(bool),復數型(complex),定義這些類型很容易,因為是強類型定義的語言,所以會直接識別是什麽類型。例如:
1 a = 1 #int類型
2 b = 1.2 #float類型
3 c = True #bool 類型
4 d = 1+2j #complex類型
5.常見數據類型(列表,元組)
下面將會介紹兩種常見的數據類型列表和元組,這裏會通過實例來介紹這兩數據類型。
列表(list):
1 li = [1,2,‘a‘,‘list‘] #列表內的元素用逗號隔開,列表內元素可以為大多數數據類型
2
3 li1 = [1,3,[3,4],‘wallace‘] #列表本身也可以作為元素
索引和切片:
1 li = [1,2,4,‘a‘] #定義一列表
2 >>li[1] #索引的起始為li[0]
3 2
4 >>li[-1] #可以從末尾開始索引
5 ‘a‘
6 >>li[0:2] #切片原則為左閉右開,即取左不取右
7 1,2
8 >>li[2:] #若想去最後面的數據,可什麽數據都不寫
9 4,‘a‘
10 >>li[-2:-1] #也可以有負數切片
11 4,‘a‘
12
list增加元素:
1 >>li = [1,3,4]
2 >>li.append(‘a‘) #在末尾添加元素
3 >>li
4 [1,3,4,‘a‘]
5 >>li.insert(2,‘b‘) #在指定位置添加一個元素
6 >>li
7 [1,3,‘b‘,4,‘a‘]
8 >>li.extend([2,‘c‘]) #添加多個元素,即擴展列表
9 >>li
10 [1,3,‘b‘,4,‘a‘,2,‘c‘]
list搜索:
1 >>li = [1,3,‘b‘,4,‘a‘,2,‘c‘]
2 >>li.index(‘b‘) #返回對應元素的索引位置,若不存在則會報錯
3 2
list刪除:
1 >>li = [1,3,‘b‘,4,‘a‘,2,‘c‘,3]
2 >>li.remove(3) #移除首次出現的對應的值
3 >>li
4 [1,‘b‘,4,‘a‘,2,‘c‘,3]
5 >>li.pop() #彈出列表最末尾的值
6 3
7 >>li
8 [1,‘b‘,4,‘a‘,2,‘c‘]
元組(tuple):
1 tu = (1,2,3,[2,3]) #元組就是將列表的中括號改為小括號
2 tu2 = ‘a‘,‘b‘ #這種方式定義的也是一個元組
3 tu = 1, #註意必須有一個逗號才能表示一個元組
可能大家會有疑問,為什麽有列表還定義一個元組,這不是多余嗎,當然不是:列表是有序的集合,可以隨時添加和刪除其中的元素。元組是不可變的,即一旦定義好後不可對其添加,修改以及刪除。
Python 全棧開發一 python初識