Python學習筆記

2021-09-19 11:21:24 字數 4798 閱讀 4179

[起始:結束:步長]  步長可以為負數,要求結束》起始  

倒序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 ...