1. 程式人生 > >來自知乎 python十分鐘教程

來自知乎 python十分鐘教程

python十分鐘入門教程:

【搭建開發環境】

1 可以到Welcome to Python.org下載安裝包,然後通過configure、make、make install進行安裝。

2 也可以到ActiveState | ActiveState去下載ActivePython元件包。(ActivePython是對Python核心和常用模組的二進位制包裝,它是ActiveState公司釋出的Python開發環境。ActivePython使得Python的安裝更加容易,並且可以應用在各種作業系統上。ActivePython包含了一些常用的Python擴充套件,以及Windows環境的程式設計介面)。對ActivePython來說,如果你是windows使用者,下載msi包安裝即可;如果你是Unix使用者,下載tar.gz包直接解壓即可。

3 Python的IDE,包括PythonWin、Eclipse+PyDev外掛、Komodo、EditPlus

【版本】

python2與python3是目前主要的兩個版本。

如下兩種情況下,建議使用python2:

1 你無法完全控制你即將部署的環境時;

2 你需要使用一些特定的第三方包或擴充套件時;

python3是官方推薦的且是未來全力支援的版本,目前很多功能提升僅在python3版本上進行。

【hello world】

1 建立hello.py

2 編寫程式:

if __name__ == '__main__':
    print "hello word"
3 執行程式:
python ./hello.py

【註釋】

1 無論是行註釋還是段註釋,均以#加一個空格來註釋。

2 如果需要在程式碼中使用中文註釋,必須在python檔案的最前面加上如下注釋說明:


# -* - coding: UTF-8 -* -

3 如下注釋用於指定直譯器


#! /usr/bin/python

【檔案型別】

1 Python的檔案型別分為3種,即原始碼、位元組程式碼和優化程式碼。這些都可以直接執行,不需要進行編譯或連線。

2 原始碼以.py為副檔名,由python來負責解釋;

3 原始檔經過編譯後生成副檔名為.pyc的檔案,即編譯過的位元組檔案。這種檔案不能使用文字編輯器修改。pyc檔案是和平臺無關的,可以在大部分作業系統上執行。如下語句可以用來產生pyc檔案:


import py_compile
py_compile.compile(‘hello.py’)

4 經過優化的原始檔會以.pyo為字尾,即優化程式碼。它也不能直接用文字編輯器修改,如下命令可用來生成pyo檔案:


python -O -m py_complie hello.py

【變數】

1 python中的變數不需要宣告,變數的賦值操作即使變數宣告和定義的過程。

2 python中一次新的賦值,將建立一個新的變數。即使變數的名稱相同,變數的標識並不相同。用id()函式可以獲取變數標識:


x = 1
print id(x)
x = 2
print id(x)

3 如果變數沒有賦值,則python認為該變數不存在

4 在函式之外定義的變數都可以稱為全域性變數。全域性變數可以被檔案內部的任何函式和外部檔案訪問。

5 全域性變數建議在檔案的開頭定義。

6 也可以把全域性變數放到一個專門的檔案中,然後通過import來引用:

gl.py檔案中內容如下:


_a = 1
_b = 2

use_global.py中引用全域性變數:


import gl
def fun():
  print gl._a
  print gl._b
fun()

【常量】

python中沒有提供定義常量的保留字。可以自己定義一個常量類來實現常量的功能。


class _const:
  class ConstError(TypeError): pass
    def __setattr__(self,name,vlaue):
      if self.__dict__.has_key(name):
        raise self.ConstError, “Can’t rebind const(%s)”%name
        self.__dict__[name]=value
import sys
sys.modules[__name__]=_const()

【資料型別】

1 python的數字型別分為整型、長整型、浮點型、布林型、複數型別。

2 python沒有字元型別

3 python內部沒有普通型別,任何型別都是物件。

4 如果需要檢視變數的型別,可以使用type類,該類可以返回變數的型別或建立一個新的型別。

5 python有3種表示字串型別的方式,即單引號、雙引號、三引號。單引號和雙引號的作用是相同的。python程式設計師更喜歡用單引號,C/Java程式設計師則習慣使用雙引號表示字串。三引號中可以輸入單引號、雙引號或換行等字元。

【運算子和表示式】

1 python不支援自增運算子和自減運算子。例如i++/i–是錯誤的,但i+=1是可以的。

2 1/2在python2.5之前會等於0.5,在python2.5之後會等於0。

3 不等於為!=或<>

4 等於用==表示

5 邏輯表示式中and表示邏輯與,or表示邏輯或,not表示邏輯非

【控制語句】

1 條件語句:


if (表示式) :
    語句1
else :
    語句2

2 條件語句:


if (表示式) :
  語句1
elif (表示式) :
  語句2
…
elif (表示式) :
  語句n
else :
  語句m

3 條件巢狀:


if (表示式1) :
  if (表示式2) :
    語句1
  elif (表示式3) :
    語句2
  …
  else:
    語句3
elif (表示式n) :
   …
else :
   …

4 python本身沒有switch語句。
5 迴圈語句:


while(表示式) :
   …
else :
   …

6 迴圈語句:


for 變數 in 集合 :
   …
else :
   …

7 python不支援類似c的for(i=0;i<5;i++)這樣的迴圈語句,但可以藉助range模擬:


for x in range(0,5,2):
    print x

【陣列相關】

1 元組(tuple):python中一種內建的資料結構。元組由不同的元素組成,每個元素可以儲存不同型別的資料,如字串、數字甚至元素。元組是防寫的,即元組建立之後不能再修改。元組往往代表一行資料,而元組中的元素代表不同的資料項。可以把元組看做不可修改的陣列。建立元組示例如下:


tuple_name=(“apple”,”banana”,”grape”,”orange”)

2 列表(list):列表和元組相似,也由一組元素組成,列表可以實現新增、刪除和查詢操作,元素的值可以被修改。列表是傳統意義上的陣列。列表建立示例如下:


list=[“apple”,”banana”,”grage”,”orange”]

可以使用append方法來在尾部追加元素,使用remove來刪除元素。

3 字典(dictionary):由鍵-值對組成的集合,字典中的值通過鍵來引用。鍵和值之間用冒號隔開,鍵-值對之間用逗號隔開,並且被包含在一對花括號中。建立示例如下:


dict={“a”:”apple”, “b”:”banana”, “g”:”grage”, “o”:”orange”}

4 序列:序列是具有索引和切片能力的集合。元組、列表和字串都屬於序列。

【函式相關】

1 python程式由包(package)、模組(module)和函式組成。包是由一系列模組組成的集合。模組是處理某一類問題的函式和類的集合。

2 包就是一個完成特定任務的工具箱。

3 包必須含有一個__init__.py檔案,它用於標識當前資料夾是一個包。

4 python的程式是由一個個模組組成的。模組把一組相關的函式或程式碼組織到一個檔案中,一個檔案即是一個模組。模組由程式碼、函式和類組成。匯入模組使用import語句。

5 包的作用是實現程式的重用。

6 函式是一段可以重複多次呼叫的程式碼,函式定義示例如下:


def arithmetic(x,y,operator):
   result={
      “+”:x+y,
      “-“:x-y,
      “*”:x*y,
      “/”:x/y
   }

7 函式返回值可以用return來控制。

【字串相關】

1 格式化輸出:


format=”%s%d” % (str1,num)
print format

2 用+進行字串的合併:


str1=”hello”
str2=”world”
result=str1+str2

3 字串擷取可以通過索引/切片,也可以通過split函式。

4 通過切片擷取字串:


word=”world”
print word[0:3]

5 python使用==和!=來進行字串比較。如果比較的兩個變數的型別不相同,那麼結果必然為不同。

【檔案處理】

1 簡單處理檔案:


context=”hello,world”
f=file(“hello.txt”,’w’)
f.write(context);
f.close()

2 讀取檔案可以使用readline()函式、readlines()函式和read函式。

3 寫入檔案可以使用write()、writelines()函式

【物件和類】

1 python用class保留字來定義一個類,類名的首字元要大寫。當程式設計師需要建立的型別不能用簡單型別來表示時,就需要定義類,然後利用定義的類建立物件。定義類示例:


class Fruit:
    def grow(self):
       print “Fruit grow”

2 當一個物件被建立後,包含了三方面的特性,即物件的控制代碼、屬性和方法。建立物件的方法:


fruit = Fruit()
fruit.grow()

3 python沒有保護型別的修飾符

4 類的方法也分為公有方法和私有方法。私有函式不能被該類之外的函式呼叫,私有的方法也不能被外部的類或函式呼叫。

5 python使用函式”staticmethod()“或”@ staticmethod“指令的方法把普通的函式轉換為靜態方法。靜態方法相當於全域性函式。

6 python的建構函式名為__init__,解構函式名為__del__

7 繼承的使用方法:


class Apple(Fruit):
   def …

【連線mysql】

1 用MySQLdb模組操作MySQL資料庫非常方便。示例程式碼如下:

import os, sys
import MySQLdb
try:
    conn MySQLdb.connect(host=’localhost’,user=’root’,passwd=’’,db=’address’
except Exception,e:
    print e
    sys.exit()
cursor=conn.cursor()
sql=’insert into address(name, address) values(%s, %s)’
value=((“zhangsan”,”haidian”),(“lisi”,”haidian”))
try
    cursor.executemany(sql,values)
except Exception, e:
    print e
sql=”select * from address”
cursor.execute(sql)
data=cursor.fetchall()
if data
    for x in data:
        print x[0],x[1]
cursor.close()
conn.close()