學習一門新語言, 有兩種思路: 1. 將原來所學清空,懷空杯心態, 以免受原有語言思路的影響。畢竟,語言會塑造人的思維。 2. 將新語言與原有語言關聯對比, 從而在最快時間內能夠掌握基礎知識,編寫出有用的程序。一般這種情況下,是項目需求所致。
學習Python 有如下理由: 1. 表達能力強大, 不遜於C,C++,JAVA這些主編程語言 這是必要條件; 2. 它是類腳本語言, 這意味著簡化了程序的編寫, 用更少的代碼完成用主編程語言可能語法繁瑣的各種任務; 3. 格式嚴謹, 有利於代碼風格的訓練和軟件代碼的可讀性,項目代碼的管理; 4. 庫、框架多,可以快速建立應用。 有此四條足矣,趕緊上路吧,別比來比去了!(附: PythonVSshellVsPerl : python 功能比 shell 強大, 而使用比perl簡單, perl 是屬於黑客的工具, 對於一般的編程人士,用python其實挺好的!)
我采用的思路是將 Python 與 Java 關聯起來, 學習 Python 基礎. 所以,本文不打算細述 Python 的語法, 而是通過對比差別來增強對Python 的認識, 當然, 大量的編程練習是必要的,最好能夠結合一個小項目,並通過不斷試錯。 我寫了兩個星期的 python , 才基本有個認識。 注: 我使用的是 Python 2.7.3 版本。
1. Python 的代碼縮進: 這是首先要提到的。 用括號括起來的代碼塊, 將通過 冒號加 正確縮進(同一層次的代碼塊必須使用完全相同的縮進) 來表達 , 條件語句中的括號通常可省略。 語句末的分號可有可無。寫python 代碼塊時一定要注意加上冒號和正確的縮進, 這是經常容易犯的錯誤。例如:
while ( i < 100) {
i += 2
printf("%d",x)
}
用 python 寫是這樣:
while i < 100 :
i += 2 // 這裡正確的縮進是必要的,否則報語法錯誤。
# print x ## Error: unexpected indent , 同一層次的代碼必須采用完全相同的縮進, 多一個或少一個空格都不行。
2. 變量在使用前一定要進行初始化和賦值,否則解釋器無法識別該變量。一個變量均可以存儲多種類型的值,不強調類型。 函數定義時不強調類型。 這是腳本語言的特點, 方便程式的編寫。 比如
def func(x) :
return x*2
x = 2
y = func(x)
print x , " ", y
x = ' now changed to an string '
print x, " " , y , ' OMG' # 松散的打印格式 , 雙引號和單引號均可表示字符串
# print zzz 會報錯: NameError : name 'zzz' is not defined.
3. 控制流 : if , if-elif-...-else , for ... in ... , while , continue, break ; 還有一個 pass 語句表示空執行, 即相當於空塊,或者 NOP
4. 單行注釋用 # 號, 多行注釋用三個單引號
''' these are
more lines.
'''
5. 強大的內置動態數據結構: list , set, tuple, dicionary . 這些動態的數據結構很容易組合成更強大的數據結構工具。 關於這些結構的使用,網上有很多文章,這裡就不細述了。
mylist = [ ] # 建立空列表
mylist = [1 , 3 , 'good']
print mylist
mylist[1] = [('this is a tuple'), ['nested list']]
print mylist
list 主要方法有: append(x) , extend(List), insert(x), sort(), reversed(), pop([i]), insert(i, x), 等。
myset = [1 , 2 ,1 ,1 , 2] # 建立集合 ===> myset = [1 ,2]
set 有成員檢測功能:
x = 1
if x in myset :
print myset, " has member : ", x
else :
print x , " is not found in ", myset
mydict = {1 : ('zs', 'good', 25) , 2 : ('ww', 'right', 30) }
print mydict
mydict['city'] = 'hangzhou'
for k, v in mydict.iteritems() :
print k, v
print dict.keys()
元組 tuple 與列表類似, 但元組是不可變的, 這意味著無法修改元組的值。 引用元組的值采用下標方式
mytuple = (1, 2, 3, 4)
print mytuple[2]
# Error : mytuple[0] = 0
6. 模塊。 一個 python 文件就是一個模塊, 以 .py 為後綴。 當你在 func.py 中編寫了函數 sign(x) 後, 要在其他文件中引用,則采用如下方式:
[1] import func
func.sign(x) # 模塊名.函數名
[2] from func import sign(x)
sign(x) # 直接引用