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 是可選參數