Python學習筆記(2018.02.03-06)


Crossin的編程教室今天看完了,最後幾節課看的比較亂,接下來開始迷茫了,感覺學的很認真了,可是想想之前不知道學了點什麼呢?又想不出個所以然來,接下來,明天不知道該怎麼開始了?

random.random()

生成一個0到1之間的隨機浮點數,包括0但不包括1,也就是[0.0, 1.0)。


random.uniform(a, b)

生成a、b之間的隨機浮點數。不過與randint不同的是,a、b無需是整數,也不用考慮大小


random.choice(seq)

從序列中隨機選取一個元素。seq需要是一個序列,比如list、元組、字符串。


random.randrange(start, stop, step)

生成一個從start到stop(不包括stop),間隔爲step的一個隨機數。start、stop、step都要爲整數,且start<stop。


random.sample(population, k)

從population序列中,隨機獲取k個元素,生成一個新序列。sample不改變原來序列。


random.shuffle(x)

把序列x中的元素順序打亂。shuffle直接改變原有的序列。




在計算機領域有一個特殊的時間,叫做epoch,它表示的時間是1970-01-01 00:00:00 UTC。

Python中time模塊的一個方法

time.time()

返回的就是從epoch到當前的秒數(不考慮閏秒)。這個值被稱爲unix時間戳。


time.sleep(secs)


它可以讓程序暫停secs秒。例如:


import time

print 1

time.sleep(3)

print 2


pickle。它可以把任何 Python 對象存儲在文件中,再把它原樣取出來

list_1 = [1, 2, 3, 5, 8, 13, 22]

list_2 = [i for i in list_1 if i % 2 == 0]

print list_2

提取偶數組成新列表

當你沒有提供足夠的參數時,會用默認值作爲參數的值。

例如:

定義

def func(arg1=1, arg2=2, arg3=3):

print arg1, arg2, arg3

調用

func(2, 3, 4)

func(5, 6)

func(7)

輸出爲

2 3 4

5 6 3

7 2 3


沒有指定參數名的參數必須在所有指定參數名的參數前面,且參數不能重複。

調用都是錯誤的:

func(arg1=13, 14)

func(15, arg1=16)


 func(*args) 方式是把參數作爲 tuple 傳入函數內部。而 func(**kargs) 則是把參數以鍵值對字典的形式傳入。字典是無序的

帶有默認值的形參(arg=)須在無默認值的形參(arg)之後;

元組參數(*args)須在帶有默認值的形參(arg=)之後;

字典參數(**kargs)須在元組參數(*args)之後

而在函數被調用時,參數的傳遞過程爲:

1.按順序把無指定參數的實參賦值給形參;

2.把指定參數名稱(arg=v)的實參賦值給對應的形參;

3.將多餘的無指定參數的實參打包成一個 tuple 傳遞給元組參數(*args);

4.將多餘的指定參數名的實參打包成一個 dict 傳遞給字典參數(**kargs)


lambda 參數列表: 表達式

sum = lambda a, b, c: a + b + c

print sum(1, 2, 3)


“全局變量”  給變量名前加上 global 關鍵字,這樣其作用域就不再侷限在函數塊中,而是全局的作用域。

from functools import reduce

lst = xrange(1, 101)

def add(x, y):

return x + y

print reduce(add, lst)

如果把剛纔的 lst 換成 [1,2,3,4,5],那 reduce(add, lst) 就相當於 ((((1+2)+3)+4)+5)

reduce((lambda x, y: x + y), xrange(1, 101))


lst_1 = (1,2,3,4,5,6)
lst_2 = list(map(lambda x: x * 2, lst_1))    #Python2中多了個list()
print (lst_2)

python 裏有一個 thread 模塊,其中提供了一個函數:


start_new_thread(function, args[, kwargs])


function 是開發者定義的線程函數,

args 是傳遞給線程函數的參數,必須是tuple類型,

kwargs 是可選參數


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章