
Python是一種什么語言呢?
首先,我們先了解一下編程語言的基本知識:用任何編程語言來開發(fā)程序都是讓計算機為我們所用,比如開發(fā)一款APP、編寫一篇文檔等等。而計算機干活的CPU只聽得懂機器指令,所以盡管不同的編譯語言差異很大最后都得翻譯成CPU可以執(zhí)行的機器指令。
而不同的編譯語言,干同一個活,編寫的代碼量差異也很大。比如,做同一個游戲,C語言要寫1000行代碼,C++要寫300行,而Python也許只要30行。
所以Python是一種非常高級的語言。
【1】Python與其他語言對比
綜上所述,Python是一種解釋型(沒有編譯環(huán)節(jié))、交互式(可以在一個Python提示符下直接互動執(zhí)行你寫的程序)、面向?qū)ο?/b>(支持面向?qū)ο蟮娘L格或代碼封裝在對象的編程技術(shù))、動態(tài)數(shù)據(jù)類型的高級程序語言。
【2】準備階段
(以下是2.X版本)
1)IDE
①PYCharm(https://www.jetbrains.com/pycharm/download/)
帶有一整套可以幫助用戶在使用Python語言開發(fā)時提高其效率的工具,比如調(diào)試、語法高亮、project管理、代碼跳轉(zhuǎn)、智能提示、自動完成、單元測試、版本控制。此外,該IDE提供了一些高級功能,以用于支持Django框架下的專業(yè)Web開發(fā)。
②Cpython
官方版本,下載時自帶。
2)文本編輯器
在python的交互式命令行寫程序,雖然能立即得到結(jié)果,但是無法保存。所以實際開發(fā)時總是使用一個文本編輯器來寫代碼,寫完保存成一個文件后就可以反復運行程序了。
①Notepad++
②我用的是下載自帶的Untitled
【3】基礎(chǔ)要打好!
1)輸入和輸出
print會依次打印每個字符串,遇到“,”會輸出一個空格。
任何計算機程序都是為了執(zhí)行一個特定任務(wù),有了輸入用戶才能告訴計算機程序所需的信息;有了輸出,程序運行后才能告訴用戶任務(wù)的結(jié)果。
raw_input和print是在命令行下最基本的輸入和輸出。
2)數(shù)據(jù)類型
在Python中,能直接處理的數(shù)據(jù)類型有:
①整數(shù):和數(shù)學上一樣,如110、-666等;用十六進制(0x前綴)較方便,如0xff00等。包括有長整型long(用L表示)和符號整型int。
②浮點數(shù)(float):就是小數(shù),可用數(shù)學寫法,如1.23、-6.54;對很大或很小的浮點數(shù)必須用科學記數(shù)法,把十用e替代,2.34*10^9就是2.34e9或23.4e8.整數(shù)和浮點數(shù)在計算機內(nèi)部存儲方式不同,整數(shù)運算永遠精確,而浮點數(shù)運算可能有四舍五入的誤差。
③復數(shù)(complex):復數(shù)由實數(shù)部分和虛數(shù)部分構(gòu)成,可以用 a + bj,或者 complex(a,b) 表示, 復數(shù)的實部 a 和虛部 b 都是浮點型。
④字符串(string):是以單引號' '或雙引號" "括起來的數(shù)字、字母、下劃線組成的任意文本。
python的字串列表有2種取值順序:一種是從左到右索引默認0開始的,最大范圍是字符串長度少1;另一種是從右到左索引默認-1開始的,最大范圍是字符串開頭。
從字符串中獲取一段子字符串,可以使用變量?[頭下標:尾下標]截取相應(yīng)的字符串,其中下標是從 0 開始算起,可以是正數(shù)或負數(shù),下標可以為空表示取到頭或尾;當使用以冒號分隔的字符串,python返回一個新的對象,結(jié)果包含了以這對偏移標識的連續(xù)的內(nèi)容,左邊的開始包含下邊界,但取到的最大范圍不包括上邊界;加號(+)是字符串連接運算符,星號(*)是重復操作。
看個例子都明白了:
【轉(zhuǎn)義字符\可以轉(zhuǎn)義許多字符,比如\n表示轉(zhuǎn)行,\t表示制表符,字符\本身也要轉(zhuǎn)義,所以\\表示的字符就是\。
若字符串里面有很多字符都需要字符都需要轉(zhuǎn)義,就需要加很多\。為了簡化,Python允許用r' '表示' '內(nèi)部的字符串默認不轉(zhuǎn)義。
如果字符串內(nèi)部有很多換行,Pyhon允許用'''(前后三個單引號)的格式表示多行內(nèi)容】
⑤布爾值(bool):只有True和False兩種值(注意大小寫),可以用and、or和not運算,常用在條件判斷中。
⑥空值(None):是Python里面一個特殊的值,不能理解為0,因為0是有意義的,而None是一個特殊的空值。
⑦列表(list):用?[ ]?標識,可以完成大多數(shù)集合類的復合數(shù)據(jù)結(jié)構(gòu)實現(xiàn),支持字符,數(shù)字,字符串甚至可以包含列表(即嵌套)。
類似截取子字符串,用變量?[頭下標:尾下標] 就可以截取相應(yīng)的列表,從左到右索引默認 0 開始,從右到左索引默認 -1 開始,下標可以為空表示取到頭或尾;加號?+?是列表連接運算符,星號?*?是重復操作。
⑧元組(tuple):用()標識,內(nèi)部元素用逗號隔開。
注意?。。。?b>元組是不允許更新的。而列表是允許更新的。就是說元組不能二次賦值,相當于只讀列表。看下面:
⑨字典(dictionary):用"{ }"標識,由索引(key)和它對應(yīng)的值value組成。除列表以外python之中最靈活的內(nèi)置數(shù)據(jù)結(jié)構(gòu)類型。列表是有序的對象集合,字典是無序的對象集合。兩者之間的區(qū)別在于:字典當中的元素是通過鍵來存取的,而不是通過偏移存取。
定義: d = ["key1":value1, "key2":value2] ? ?一個key只能對應(yīng)一個value 。如果key不存在,就會報錯 ,可以通過 key in dict 來判斷dict中是否有這個key ,要刪除一個key,可以用pop(key)來刪除,相對應(yīng)的value也會被刪除 ,dict內(nèi)部存放的順序和key放入的順序是沒有關(guān)系的
和list比較,dict有以下幾個特點:查找和插入的速度極快,不會隨著key的增加而增加;需要占用大量的內(nèi)存,內(nèi)存浪費多。而list相反:查找和插入的時間隨著元素的增加而增加;占用空間小,浪費內(nèi)存很少。 所以,dict是用空間來換取時間的一種方法。
⑩集合(set)
和dict類似,也是一組key的集合,但不存儲value。由于key不能重復,所以,在set中,沒有重復的key。要創(chuàng)建一個set,需要提供一個list作為輸入集合.
set可以看成數(shù)學意義上的無序和無重復元素的集合,因此,兩個set可以做數(shù)學意義上的交集( & )、并集( | )等操作。通過add(key)方法可以添加元素到set中,可以重復添加,但不會有效果;通過remove(key)方法可以刪除元素?
此外,還允許數(shù)據(jù)類型轉(zhuǎn)換、創(chuàng)建自定義數(shù)據(jù)類型等等,待補充。
3)變量和常量
①變量
變量在程序中用一個變量名表示,變量名必須是英文、數(shù)字和_的組合,且不能以數(shù)字開頭。
Python 中的變量賦值不需要類型聲明,但每個變量在使用前都必須賦值,變量賦值以后該變量才會被創(chuàng)建,每個變量在內(nèi)存中創(chuàng)建,都包括變量的標識,名稱和數(shù)據(jù)這些信息。等號(=)就用來給變量賦值,左邊是一個變量名,等號(=)運算符右邊是存儲在變量中的值。
Python允許多個變量同時賦值。如a = b = c = 1就創(chuàng)建了一個值為1的整型對象,三個變量被分配到相同的內(nèi)存空間上(一個對象指定多個變量);又如:a, b, c = 1, 2, "john"將兩個整型對象1和2的分配給變量 a 和 b,字符串對象 "john" 分配給變量 c(多個對象指定多個變量)。
②常量
Python中常用全部大寫的變量名表示常量,如PI(圓周率)
4) 運算符
Python語言支持以下類型的運算符:
①算術(shù)運算符:加(+)減(-)乘(*)除(/)取模(%)取整除(//)冪(**)
【取模 - 返回除法的余數(shù);冪 - 返回x的y次冪;取整除 - 返回商的整數(shù)部分】注意:Python2.x 里,整數(shù)除整數(shù),只能得出整數(shù)。如果要得到小數(shù)部分,把其中一個數(shù)改成浮點數(shù)即可。
②比較運算符:等于(==)不等于(!=)不等于(<>)大于(>)小于(<)大于等于(>=)小于等于(<=)
③賦值運算符
④位運算符:&(按位與) |(按位或) ^(按位異或) ~(按位取反) <<(左移動運算符) >>(右移動運算符)
⑤邏輯運算符:and(與)or(或)not(非)
⑥成員運算符:in(x 在 y 序列中 , 如果 x 在 y 序列中返回 True);not in(在指定的序列中沒有找到值返回 True,否則返回 False)
⑦身份運算符:is(x is y, 類似?id(x) == id(y)?, 如果這兩個標識符引用的是同一個對象則返回 True,否則返回 False);is not (x is not y?, 類似?id(a) != id(b)。如果引用的不是同一個對象則返回結(jié)果 True,否則返回 False)
⑧運算符優(yōu)先級
【4】下載與資料
1)最新源碼,二進制文檔,新聞資訊可以在Python官網(wǎng)看到:http://www.python.org/
2)Python文檔(支持HTML、PDF、PostScript等格式)下載地址:www.python.org/doc/