1. 程式人生 > 實用技巧 >零基礎小白不得不先看的Python基礎教程

零基礎小白不得不先看的Python基礎教程

本文是第一篇,一共四篇打下Python基礎 宣告下:Python的入門難度為0,比Java,C++根本不能比,你會英語基本沒問題。 本文是第一篇 1、基本概念 1.1 四種類型 python中數有四種類型:整數、長整數、浮點數和複數。

  • 整數, 如 1 複製程式碼

  • 長整數 是比較大的整數 複製程式碼

  • 浮點數 如 1.23、3E-2

  • 複數 如 1 + 2j、 1.1 + 2.2j

1.2 字串 字串(字元的序列)

  • python中單引號和雙引號使用完全相同。 複製程式碼

  • 使用三引號('''或""")可以指定一個多行字串。 複製程式碼

  • 轉義符 `'\'` 複製程式碼

  • 自然字串, 通過在字串前加r或R。 如` r"this is a line with \n"` 則`\n`會顯示,並不是換行。 複製程式碼

  • python允許處理`unicode`字串,加字首u或U, 如 `u"this is an unicode string"`。 複製程式碼

  • 字串是不可變的。

  • 按字面意義級聯字串,如"this " "is " "string"會被自動轉換為this is string。 複製程式碼

1.3 識別符號的命名 識別符號的命名

  • 第一個字元必須是字母表中字母或下劃線'_'。 複製程式碼

  • 識別符號的其他的部分有字母、數字和下劃線組成。 複製程式碼

  • 識別符號對大小寫敏感。 複製程式碼

1.4 物件  python程式中用到的任何“東西”都成為“物件”。 1.5 邏輯行和物理行

  • 物理行:就是程式設計師所寫程式碼的所在行。

  • 邏輯行:是指原始碼經過預編譯後,程式碼所在的那一行。

Python假定每個物理行都對應著一個邏輯行。例如:print( "Hello World" ) 就是一個物理行,Python希望每行只有一個語句,因為這樣看起來更加易讀。 如果你想要在一個物理行中使用多於一個邏輯行,那麼你需要使用分號(; )來特別地標明這種用法。分號表示一個邏輯行/語句的結束。 例如: count = 5 print ( "count" ) 複製程式碼 與下面的語句等同: count = 5; print ( "count" ); 複製程式碼 當然也可以寫成下面這種: count = 5 ; print ( "count" ); 複製程式碼 甚至可以寫成這樣: count = 5 ; print ( "count" ) 複製程式碼 我們使用\的換行 print \ ("Runsen") 複製程式碼 1.6 縮排 空白在python是非常重要的,行首的空白是最重要的,又稱為縮排。行首的空白(空格和製表符)用來決定邏輯行的縮排層次,從而決定語句。 2、運算子與表示式 2.1 運算子與其用法

h>名稱

運算子

例子

2.2 運算子優先順序 .運算子優先順序(從低到高)

運算子

描述

2.3 輸出 python 控制檯輸出 使用print print ("abc" )  #列印abc並換行 print ("abc%s" % "d" )  #列印abcd print ("abc%sef%s" % ("d", "g") )  #列印abcdefg 複製程式碼 3、控制流 3.1 if 語句 i = 10 n = int(input("enter a number:")) if n == i: print( "equal") elif n < i: print( "lower") else: print ("higher") 複製程式碼 3.2 while語句 while True: pass else: pass #else語句可選,當while為False時,else語句被執行。 pass是空語句。 複製程式碼 for 迴圈 for..in for i in range(0, 5): print (i) else: pass # 列印0到4 複製程式碼 注:當for迴圈結束後執行else語句; range(a, b)返回一個序列,從a開始到b為止,但不包括b,range預設步長為1,可以指定步長,range(0,10,2); 3.3 break語句 終止迴圈語句,如果從for或while中終止,任何對應迴圈的else將不執行。 3.4 continue語句 continue語句用來調過當前迴圈的剩餘語句,然後繼續下一輪迴圈。 下面就是 break 和 continue 主要的 區別:

  • break:跳出整個迴圈

  • continue:跳出本次迴圈,繼續執行下一次迴圈 希望大家牢記。

4、函式 函式通過def定義。def關鍵字後跟函式的識別符號名稱,然後跟一對圓括號,括號之內可以包含一些變數名,該行以冒號結尾;接下來是一塊語句,即函式體。 def sumOf(a, b): return a + b 複製程式碼 4.1 函式形參 函式中的引數名稱為‘形參’,呼叫函式時傳遞的值為‘實參’ 4.2 區域性變數 在函式內定義的變數與函式外具有相同名稱的其他變數沒有任何關係,即變數名稱對於函式來說是區域性的。這稱為變數的作用域。 global語句, 為定義在函式外的變數賦值時使用global語句。 def func(): global x print( "x is ", x) x = 1 x = 3 func() print(x) #3 #1 複製程式碼 4.3 預設引數 通過使用預設引數可以使函式的一些引數是‘可選的’。 def say(msg, times = 1): print(msg * times) say("Runsen") say("Runsen", 3) 複製程式碼 注意:只有在形參表末尾的那些引數可以有預設引數值,即不能在宣告函式形參的時候,先宣告有預設值的形參而後宣告沒有預設值的形參,只是因為賦給形參的值是根據位置而賦值的。 4.4 關鍵引數 如果某個函式有很多引數,而現在只想指定其中的部分,那麼可以通過命名為這些引數賦值(稱為‘關鍵引數’)。 優點:不必擔心引數的順序,使函式變的更加簡單;假設其他引數都有預設值,可以只給我們想要的那些引數賦值。 def func(a, b=2, c=3): print ("a is %s, b is %s, c is %s") % (a, b, c) func(1) #a is 1, b is 2, c is 3 func(1, 5) #a is 1, b is 5, c is 3 func(1, c = 10) #a is 1, b is 2, c is 10 func(c = 20, a = 30) #a is 30, b is 2, c is 20 複製程式碼 4.5 return 語句  return語句用來從一個函式返回,即跳出函式。可從函式返回一個值。  沒有返回值的return語句等價於return None。None表示沒有任何東西的特殊型別。 4.5 文件字串 __doc__ (文件字串) def func(): '''This is self-defined function Do nothing ''' pass print(func.__doc__) #This is self-defined function # #Do nothing 複製程式碼 5、模組 模組就是一個包含了所有你定義的函式和變數的檔案,模組必須以.py為副檔名。模組可以從其他程式中‘輸入’(import)以便利用它的功能。 在python程式中匯入其他模組使用'import', 所匯入的模組必須在sys.path所列的目錄中,因為sys.path第一個字串是空串''即當前目錄,所以程式中可匯入當前目錄的模組。 5.1 位元組編譯的.pyc檔案 匯入模組比較費時,python做了優化,以便匯入模組更快些。一種方法是建立位元組編譯的檔案,這些檔案以.pyc為副檔名。 pyc是一種二進位制檔案,是py檔案經編譯後產生的一種byte code,而且是跨平臺的(平臺無關)位元組碼,是有python虛擬機器執行的,類似於 java或.net虛擬機器的概念。pyc的內容,是跟python的版本相關的,不同版本編譯後的pyc檔案是不同的。 5.2 from .. import 如果想直接使用其他模組的變數或其他,而不加'模組名+.'字首,可以使用from .. import。 例如想直接使用sys的argv,from sys import argv 或 from sys import * 5.3 模組的name 每個模組都有一個名稱,py檔案對應模組名預設為py檔名,也可在py檔案中為name賦值;如果是name,說明這個模組被使用者 (4) dir()函式

  • dir(sys)返回sys模組的名稱列表;如果不提供引數,即dir(),則返回當前模組中定義名稱列表。

(5) del del -> 刪除一個變數/名稱,del之後,該變數就不能再使用。

6、資料結構 python有三種內建的資料結構:列表、元組和字典。 6.1 列表    list是處理一組有序專案的資料結構,列表是可變的資料結構。列表的專案包含在方括號[]中, eg: [1, 2, 3], 空列表[]。判斷列表中是否包含某項可以使用in, 比如 l = [1, 2, 3]; print 1 in l; #True; 支援索引和切片操作;索引時若超出範圍,則IndexError; 使用函式len()檢視長度;使用del可以刪除列表中的項,eg: del l[0] # 如果超出範圍,則IndexError      list函式如下: append(value)  ---向列表尾新增項value l = [1, 2, 2] l.append(3) #[1, 2, 2, 3] count(value)  ---返回列表中值為value的項的個數 l = [1, 2, 2] print( l.count(2)) # 2 extend(list2)  ---向列表尾新增列表list2 l = [1, 2, 2] l1 = [10, 20] l.extend(l1) print (l ) #[1, 2, 2, 10, 20] index(value, [start, [stop]])  ---返回列表中第一個出現的值為value的索引,如果沒有,則異常 ValueError l = [1, 2, 2] a = 4 try: print( l.index(a)) except ValueError, ve: print( "there is no %d in list" % a     insert(i, value))  ---向列表i位置插入項vlaue,如果沒有i,則新增到列表尾部 l = [1, 2, 2] l.insert(1, 100) print l #[1, 100, 2, 2] l.insert(100, 1000) print l #[1, 100, 2, 2, 1000] pop([i])  ---返回i位置項,並從列表中刪除;如果不提供引數,則刪除最後一個項;如果提供,但是i超出索引範圍,則異常IndexError l = [0, 1, 2, 3, 4, 5] print( l.pop()) # 5 print( l) #[0, 1, 2, 3, 4] print( l.pop(1)) #1 print( l) #[0, 2, 3, 4] try: l.pop(100) except IndexError, ie: print( "index out of range") remove(value)  ---刪除列表中第一次出現的value,如果列表中沒有vlaue,則異常ValueError l = [1, 2, 3, 1, 2, 3] l.remove(2) print (l )#[1, 3, 1, 2, 3] try: l.remove(10) except ValueError, ve: print ("there is no 10 in list") reverse()  ---列表反轉 l = [1, 2, 3] l.reverse() print (l) #[3, 2, 1] sort(cmp=None, key=None, reverse=False)  ---列表排序 l5 = [10, 5, 20, 1, 30] l5.sort() print( l5) #[1, 5, 10, 20, 30] l6 = ["bcd", "abc", "cde", "bbb"] l6.sort(cmp = lambda s1, s2: cmp(s1[0],s2[1])) print( l6) #['abc', 'bbb', 'bcd', 'cde'] l7 = ["bcd", "abc", "cde", "bbb", "faf"] l7.sort(key = lambda s: s[1]) print (l7) #['faf', 'abc', 'bbb', 'bcd', 'cde']