註釋
和大部分腳本語言一樣,Python也是用#標示註釋。
變量與賦值
Python是動態類型語言,也就是說不需要預先聲明變量的類型。
變量的聲明也沒有相應的關鍵字,
例如
conter = 0 #整數賦值
miles = 1000.0 #浮點數賦值
name = ‘liwei’ #字符串賦值
counter = counter + 1 #對整數加1
n = n*10
數字
Python 支持五種基本數據類型,其中有三種是整數類型。
int (有符號整型)
long (長整型)
bool(布爾型)
float(浮點型)
complex(複數)
字符串
Python支持使用成對的單引號或者雙引號。
三引號(連續的三個單引號或者雙引號)可以用來包含特殊字符。
使用索引運算符([ ])和切片運算符([ : ])可以得到子字符串。
字符串有其特有的索引規則:第一個字符的索引是0,最後一個字符的索引是 –1.
(+)加號用於字符串連接;星號(*)則用於字符串重複。
pystr = ‘python’
iscool = ‘is cool!’
>>>print pystr[0]
'p’
>>>pystr[2:5]
'tho’
>>> pystr + iscool
'pythonis cool'
>>> pystr*5
'pythonpythonpythonpythonpython'
列表和元組
可以將列表和元組當成普通的數組,他們能夠保存任意數量任意類型的Python對象。
列表和元組的幾點重要區別:
列表元素用[ ]包裹,元素的個數以及元素的值可以改變。
元組元素用小括號(())包裹,不可以更改。(儘管他們的內容可以)。
元組可以看成是隻讀的列表。
通過切片運算([ ]和[ : ])可以得到子集,這一點與字符串的使用方法一樣。
列表:
>>> alist = [1,2,3,4]
>>> alist
[1, 2, 3, 4]
>>> alist[0]
1
>>> alist[2:]
[3, 4]
>>>
元組:
>>> aTuple = ('robots',77,93,'try')
>>> aTuple
('robots', 77, 93, 'try')
>>> aTuple[:3]
('robots', 77, 93)
>>> aTuple[1]=5
Traceback (most recent call last):
File "", line 1, in
TypeError: 'tuple' object does not support item assignment
字典
字典是Python中的映射數據類型,工作原理類似perl中的關聯數組或者哈希表,由鍵-值(key-value)對組成。
幾乎所有類型的Python對象都可以用作鍵。
值可以是任意類型的Python對象,字典元素用大括號({})包裹。
>>> aDict = {'host':'earth'}
>>> aDict['port'] = 80
>>> aDict
{'host': 'earth', 'port': 80}
>>> aDict.keys()
['host', 'port']
>>> aDict['host']
'earth'
>>> for key in aDict:
... print key,aDict[key]
...
host earth
port 80
>>>
代碼塊&&流程控制語句
代碼塊通過縮進對齊表達代碼邏輯而不是使用大括號,因爲沒有了額外的字符,程序的可讀性更高。
if 語句
if expression:
if_suite
if…else
if expression:
if_suite
else:
else_suite
if expression1:
if_suite
elif expression2:
elif_suite
else:
else_suite
while 循環
while expression:
while_suite
for 循環
Python中的for接受可迭代對象(例如序列或者迭代器)作爲其參數,每次迭代其中一個元素。
>>> for item in ['e-mail','net-surfing','homework','chat']:
... print item
...
net-surfing
homework
chat
在print item 後面增加一個,改變輸出方式
>>> for item in ['e-mail','net-surfing','homework','chat']:
... print item,
...
e-mail net-surfing homework chat
>>> foo = 'abc'
>>> for c in foo:
... print c
...
a
b
c
>>> foo =['abc',123,999,010]
>>> for c in foo:
... print c
...
abc
123
999
8
>>>
列表解析
這是一個讓人欣喜的術語,表示你可以在一行中使用一個for循環將所有值放到一個列表當中
>>> squared =[x**2 for x in range(4)] #x **2 x的平方
>>> for i in squared:
... print i
...
0
1
4
9
>>>
列表解析可以做更復雜的事,比如挑選符合要求的值填入列表
>>> sqdEvents =[x **2 for x in range(8) if not x % 2]
>>> for i in sqdEvents:
... print i
...
0
4
16
36
>>>
函數
類似其他的語言,Python中的函數使用小括號()調用。函數在調用之前必須先定義。
如果函數中沒有return語句,就會自動返回None對象。
Python是通過應用調用的。這意味着函數內對參數的改變會影響到原始對象。不過事實上只有可變對象會受此影響,對不可變對象來說,他的行爲類似按值調用。
定義函數:
def function_name([arguments]):
"optional documentation string”
function_suite
定義一個函數的語法由def 關鍵字以及緊隨其後的函數名再加上該函數的需要的幾個參數組成。
>>> def addme2me(x):
... 'apply + operation to argument'
... return (x+x)
...
>>> addme2me(3)
6
類
類是面向對象編程的核心,它扮演相關數據及邏輯的容器角色。他們提供了創建“真實”對象(也就是實例)的藍圖。因爲Python並不強求你以面向對象的方式編程(與java不同),
類的定義:
class ClassName(base_class[es]):
“optional documentation string”
static_member_declarations
method_declarations
使用class 關鍵字定義類。可以提供一個可選的父類或者說基類;如果沒有合適的基類,那就使用object作爲基類。class行之後是可選的文檔字符串,靜態成員定義,以及方法定義。
如何創建實例
fool = FooClass()
Created a class instance for John Doe
模塊
模塊是一種組織形式,他將彼此有關係的Python代碼組織到一個個獨立文件當中。
模塊可以包含可執行代碼,函數和類或者這些東西的組合。
當你創建了一個Python源文件,模塊的名字就是不帶.py後綴的文件名。一個模塊創建之後,你可以從另一個模塊是重用import語句導入這個模塊來使用。
如何導入模塊
import module_name
如何訪問一個模塊函數或者訪問一個模塊變量
module.function()
module.variable