[起始:結束:步長] 步長可以為負數,要求結束》起始
倒序a = b[::-1]
相乘[42] * 3 = [42, 42, 42]
強制轉成listlist('abc') = ['a', 'b', 'c']
元組,不可變的list,(2,5,6)
可作為dict的key或者函式的多個返回值
可用函式max(a)
min(a)
len(a)
del a[2]
l.reverse()
l.count(item)
l.insert(5, item)
效果為item插入到l[5]
l.sort()
l2 = sorted(l1)
l.sort(cmp, key=len, reverse=true)
something about formatting...
find
,join
,split
,strip
replace
str.replace(ori, new)
del d[key]
pop
&popitem
pop(key)
return value,del item
popitem()
return (key, value), del item
get
&setdefault
get(key, defaultvalue)
找到key返回value,找不到返回defaultvalue
setdefault(key, defaultvalue)
找到key返回value,找不到返回defaultvalue,並且插入鍵值對(key,defaultvalue)
items()
keys()
values()
返回列表
iteritems()
iterkeys()
itervalues()
返回迭代器
for key, value in sorted(dict.items(), key=lambda x:x[1], reverse=false)
print key + '\t' + value
import ***
from *** import yyy, zzz
import *** as x
from *** import yyy as y
#序列解包
x,y = y,x
key, value = d.popitem()
三元運算 a if b else c 如果b為true執行a否則c
while ***:
pass
for item in xrange(100):
pass
# xrange(n) == [0,1,...,n-1]
一些迭代方式
#1.並行迭代
names = ["a", "b", "c"]
ages = [12, 55, 33]
for name, age in zip(names, ages):
pass
#zip 取最短的list
#2. 編號迭代:
names = ["a", "b", "c"]
for index, item in enumerate(names):
pass
#break-else
for item in dict:
if ***x:
break #find something and break the loop
else:
pass # didn't find
def ***(a):
'this is a introduction for ***'
pass
#函式的注釋 ***.__doc__ == ***.func_doc== 'this is a introduction for ***'
#指定引數
def ***(arg1="a", arg2="b"):
pass
#收集引數
def ***(x, y, z=3, *t, **d):
pass
# *t 接收剩餘的未指定的引數,組成元祖
# **d 接收剩餘的指定的引數,組成dict
#函式內修改全域性變數
x = 1 #global val
def change_global():
global x
x += 1
#函式內區域性變數名字會覆蓋全域性變數,呼叫全域性變數時應用global()['val_name']
map()
接受乙個單引數函式,和序列作為引數
filter()
接受乙個bool返回型的單引數函式 和序列,留下序列中true的值
reduce()
接受乙個雙引數函式 和序列,依次迭代下去
lambda x,y:x+y
__metaclass__ = type #使用新式類
class person:
def setname(self, name):
self.name = name
def getname(self):
return self.name
def __inaccessible(self):
#__開頭方法表示私有
pass
member = 0
def init(self):
person.member += 1 #所有例項共享變數,注意區別於self.member += 1
# something about superclass
class filter:
def init(self):
self.blocked =
def filter(self, sq):
return [x for x in sq if x not in self.blocked]
class spamfilter(filter): #spamfilter is subclass of filter
def init(self): # rewrite init()
slef.blocked = ['aa']
#檢視乙個類是否是另乙個類的子類
issubclass(spamfilter, filter)
#檢視乙個instance是否屬於乙個類
isinstance(f, filter)
#檢視乙個類的基類們
spamfilter.__bases__
#檢視乙個物件屬於哪個類
f.__class__
#多個superclass
class test(class1, class2):
pass
# test 繼承了class1和2,其中class1的優先順序高(覆蓋class2的方法)
__name__
欄位在主程式中為__main__
在匯入的模組中顯示為模組的名字
# hello.py
def hello():
print "hello world!"
def test():
hello()
if __name__ == "__main__":
#如果我是主函式,則從這裡執行,否則作為被匯入的模組,以hello.test()的形式被呼叫
test():
匯入自己的模組
# python直譯器一般尋找模組的路徑
import sys
print sys.path
# 新增新路徑
匯入包
# 假設有如下結構的包drawing探索包與模組# /drawing/
# /drawing/__init__.py
# /drawing/a.py
# /drawing/b.py
import drawing
#只能使用__init__.py
import drawing.a
#可使用drawing.a.***()
from drawing import a, b
#可直接使用a.***()
dir()
__all__
help()
__doc__
__file__
python教學筆記 python學習筆記(一)
1.eval 函式 eval是單詞evaluate的縮寫,就是 求.的值的意思。eval 函式的作用是把str轉換成list,dict,tuple.li 1 1,2,3 print eval li 1 di 1 print eval di 1 tu 1 2,4,6 print eval tu 1 執...
python學習筆記
coding utf 8 coding utf 8 應該像八股文一樣在每個指令碼的頭部宣告,這是個忠告 為了解決中文相容問題,同時你應該選擇支援 unicode 編碼的編輯器環境,保證在執行指令碼中的每個漢字都是使用 utf 8 編碼過的。cdays 5 exercise 3.py 求0 100之間...
Python 學習筆記
python 學習筆記 def run print running.def execute method method execute run result running.condition false test yes,is true if condition else no,is false ...