Python十分鐘入門

roclinux發表於2012-08-24

【簡介】

  Python是一種動態解釋型的程式語言。Python可以在Windows、UNIX、MAC等多種作業系統上使用,也可以在Java、.NET開發平臺上使用。

【特點】

  1. Python使用C語言開發,但是Python不再有C語言中的指標等複雜的資料型別。

  2. Python具有很強的物件導向特性,而且簡化了物件導向的實現。它消除了保護型別、抽象類、介面等物件導向的元素。

  3. Python程式碼塊使用空格或製表符縮排的方式分隔程式碼。

  4. Python僅有31個保留字,而且沒有分號、begin、end等標記。

  5. Python是強型別語言,變數建立後會對應一種資料型別,出現在統一表示式中的不同型別的變數需要做型別轉換。

【搭建開發環境】

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

  2. 也可以到www.activestate.com去下載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()

  謝謝!

相關文章