Python常用指令

2021-07-06 11:05:38 字數 4646 閱讀 7797

import time

import os

time.sleep() #延時

time.clock() #第一次呼叫返回程式執行的實際時間;第二次呼叫返回第一次呼叫後到這次呼叫的時間間隔

time.time() #當前時間戳

time.ctime() #當前時間的字串形式

os.getcwd() #獲取當前指令碼路徑

os.chdir('d:\\') #修改當前路徑

os.linesep #當前環境下的換行分隔符

os.system('pause') #按任意鍵繼續

執行外部.py檔案

os.chdir(r'd:\test.py')

exec(compile(open(r'd:\test.py').read(),r'd:\test.py','exec'))

帶index的列舉

for index, item in enumerate(items):

print(index, item)

字串合併

l = ['one', 'two', 'three']

s = ''.join(l) #s='onetwothree'

字串分割用str.split(sep=none, maxsplit=-1)

'1,2,,3,'.split(',')

#輸出['1', '2', '', '3', '']

' 1 2 3 '.split()

#輸出['1', '2', '3'] 自動合併空格

items = 'zero one two three'.split()

#方便的單詞list初始化

行分割用str.splitlines([keepends])

自動捨棄空行,常用於檔案操作

更複雜的要求可用re.split(pattern, string, maxsplit=0, flags=0)

顯示正規表示式推導樹

re.compile("^\[font(?:=(?p[-+][0-9]))?\](.*?)[/font]",

re.debug)

新增注釋的正規表示式

pattern = """

^ # beginning of string

m # thousands - 0 to 4 m's

(cm|cd|d?c) # hundreds - 900 (cm), 400 (cd), 0-300 (0 to 3 c's), or 500-800 (d, followed by 0 to 3 c's)

(xc|xl|l?x) # tens - 90 (xc), 40 (xl), 0-30 (0 to 3 x's), or 50-80 (l, followed by 0 to 3 x's)

(ix|iv|v?i) # ones - 9 (ix), 4 (iv), 0-3 (0 to 3 i's), or 5-8 (v, followed by 0 to 3 i's)

$ # end of string

"""re.search(pattern, 'm', re.verbose)

從字串建立對應名字的類物件

class

buttonfactory

():def

create_button

(self, typ):

targetclass = typ.capitalize()

return globals()[targetclass]()

使用方法

button_obj = buttonfactory()

button_obj.create_button('button').

執行緒之間佇列

def

worker

():while

true:

item = q.get()

do_work(item)

q.task_done()

q = queue()

for i in range(num_worker_threads):

t = thread(target=worker)

t.daemon = true

t.start()

for item in source():

q.put(item)

q.join()

#queue除了提供常規的阻塞/非阻塞put() get()外,還實現了一組取決於計數的阻塞機制:每當新增元素時計數增加1,task_down()計數減1,join()阻塞直至計數歸零

引數列表

def

draw

(x, y):

# do some magic

point_foo = (3, 4)

point_bar =

draw_point(*point_foo)

draw_point(**point_bar) #對應引數名的字典

tuple多賦值與深度拷貝

import copy

m = [1, 2, [3, 4]]

a = m

b = m.copy()

b1, b2, b3 = m

c1, c2, c3 = copy.deepcopy(m)

m[1] = 20

m[2][0] = 30

print(a)

print(b)

print(b1, b2, b3)

print(c1, c2, c3)

執行結果:

[1, 20, [30, 4]]

[1, 2, [30, 4]]

12 [30, 4]

12 [3, 4]

pprint.pprint可產生相應物件的構造字串

若更為精細地進行物件序列化,則使用pickling

序列化

import pickle

data =

jar = open('data.pkl', 'wb')

pickle.dump(data, jar) # 將pickle後的資料寫入jar檔案

jar.close()

反序列化

import pickle

pkl_file = open('data.pkl', 'rb')

data = pickle.load(pkl_file)

print data

pkl_file.close()

total = sum([num * num for num in range(1, 101)])

#lazy生成器

total = sum(num * num for num in xrange(1, 101))

集合操作

>>> a = set([1,2,3,4])

>>> b = set([3,4,5,6])

>>> a | b # union

>>> a & b # intersection

>>> a < b # subset

false

>>> a - b # difference

>>> a ^ b # symmetric difference

模組結構規範

"""module docstring"""

# imports

# constants

# exception classes

# inte***ce functions

# classes

# internal functions & classes

defmain

(...):

...if __name__ == '__main__':

status = main()

sys.exit(status)

magic function內建函式隱含呼叫列表

常用:

__getattr__(self, name):

self.name 當name不存在時

__setattr__(self, name, val)

self.name = val 當name不存在時

__iter__(self)

for x in

self 迭代器

__getitem__(self, key)

self[key] 下標索引訪問

__setitem__(self, key, val)

self[key] =val 下標索引賦值

__index__(self)

x[self] 作為陣列下標時

python常用指令dir

python裡面的一切皆物件 每個物件都有不同的函式和常量。每個函式和常量都成為乙個屬性。那些函式被稱為方法。如果乙個函式是乙個模組的屬性,則這個屬性被稱之為函式 不是模組方法 dir 的作用就是將這個物件中的所有屬性顯示出來,這些屬性以列表的方式儲存。通過import sys,列印sys.modu...

mysql常用指令 Mysql常用指令

mysql常用指令2021 01 19 23 40 45 作用 去除select 查詢出來的結果中重複的資料,重複資料只展示一列.關鍵字 distinct 用法 select distinct source from student table source 去重的字段條件 student tabl...

VIM常用指令

以下格式為 指令 作用 所以輸入的時候別把 空格 也帶進去 0 到行首 到行尾 到行首字母 到上面一句或者上面乙個 段 到下面一句或者下面乙個 段 到最後一次修改的位置,注意這個 不是單引號,是1左邊的那個按鍵 文字 搜尋指定文字,找到之後使用n來跳到下乙個相同單詞位置 數值 轉跳到指定行數 轉跳到...