標籤:
作為指令碼語言,python語言格式嚴格,同時和編譯語言有些許類似,格式化輸出,強型別等。感覺使用起來不是很順手,同時,我一直對其的理解不是很清晰。直到自己動手搭建python環境後,發現python在某些方面確實比較方便。首先,強大的模組包,使大家可以不必重複造輪子,輕鬆地完成相應功能,而且python的包安裝起來也十分方便(python setup.py install)。其次,python文法十分靈活,可以避免大家苦心構造所需的變數形式,極大地減輕了人力消耗。好了,這就是目前對python膚淺的理解。接下來,對一些零散的知識點記錄一下,方便今後查看O(∩_∩)O哈哈~
1、if not x 判斷真假
`if x is not None`和`if not x is None`寫法等價,推薦`if x is not None`
使用if not x這種寫法的前提是:必須清楚x等於None, False, Null 字元串"", 0, 空列表[], 空字典{}, 空元組()時對你的判斷沒有影響才行。
參考:http://blog.csdn.net/sasoritattoo/article/details/12451359
2、id和is
(ob1 is ob2) 等價於 (id(ob1) == id(ob2))
"==" 與 "is"的區別:"=="是比較內容相當,如變數值相等;"is"是比較對象的id是否相等。下面是測試:
>>> a = 1
>>> b = 1
>>> id(a)
505300120
>>> id(b)
505300120
>>> print(a == b)
True
>>> print(a is b)
True
>>> a = 1.0
>>> b = 1.0
>>> id(a)
11372688
>>> id(b)
11372608
>>> print(a ==b)
True
>>> print(a is b)
False
當a,b為1的時候id相同,而為1.0的時候不同,這種情況在string字串的時候也會出現,即當很短的a,b賦值很短的字串的時候,它們的id值相同,而很長的則不會;
可以得到一個簡單的結論就是:解譯器在對值很小的int和很短的字串的時候做了一點小最佳化,只分配了一個對象,讓它們id一樣了
3. 判斷變數是否在list之中 if x not in list;if x in list
4、列表推導式 [x for x in list]
5、元組與列表類似,不同之處在於元組的元素不能修改。也可以按下標取值等
參考:http://www.runoob.com/python/python-tuples.html python元組
6、列表和元組可以連續賦值
x, y = (1,2)或 (x, y) = (1,2)
x=1,y=2
# Assign values from a list
(r,g,b) = ["Red","Green","Blue"]
assert r == "Red"
assert g == "Green"
assert b == "Blue"
# Assign values from a tuple
(x,y) = (1,2)
assert x == 1
assert y == 2
7、__init__.py:可以為空白,只要它存在,就表明此目錄應被作為一個package處理。python可以匯入模組和函數
參考:http://www.cnblogs.com/BeginMan/p/3183629.html 深入Python(2): __init__.py 用法
8、串連資料庫用MySQLdb返回元組,可以配置返回列表
9、常用函數
range
>>>range(5)
>>>[0,1,2,3,4]
join
>>> str = ‘goujinping‘
>>> ‘,‘.join(str)
‘g,o,u,j,i,n,p,i,n,g‘
split
>>> str = "Line1-abcdef \nLine2-abc \nLine4-abcd"
>>> str.split( )
[‘Line1-abcdef‘, ‘Line2-abc‘, ‘Line4-abcd‘]
append
>>>aList = [123, ‘xyz‘, ‘zara‘, ‘abc‘]
>>>aList.append( 2009 )
>>>print "Updated List : ", aList
Updated List : [123, ‘xyz‘, ‘zara‘, ‘abc‘, 2009]
10、腳標靈活,可以為負
python學習筆記