欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python函數(shù)用法和底層原理分析

 更新時(shí)間:2022年12月26日 08:43:21   作者:Thank CAT  
函數(shù)是可重用的程序代碼塊。函數(shù)的作用,不僅可以實(shí)現(xiàn)代碼的復(fù)用,更能實(shí)現(xiàn)代碼的一致性。一致性指的是,只要修改函數(shù)的代碼,則所有調(diào)用該函數(shù)的地方都能得到體現(xiàn),這篇文章主要介紹了Python函數(shù)用法和底層分析,需要的朋友可以參考下

Python函數(shù)用法和底層分析

函數(shù)是可重用的程序代碼塊。函數(shù)的作用,不僅可以實(shí)現(xiàn)代碼的復(fù)用,更能實(shí)現(xiàn)代碼的一致性。一致性指的是,只要修改函數(shù)的代碼,則所有調(diào)用該函數(shù)的地方都能得到體現(xiàn)。

在編寫(xiě)函數(shù)時(shí),函數(shù)體中的代碼寫(xiě)法和我們前面講述的基本一致,只是對(duì)代碼實(shí)現(xiàn)了封裝,并增加了函數(shù)調(diào)用、傳遞參數(shù)、返回計(jì)算結(jié)果等內(nèi)容。

為了讓大家更容易理解,掌握的更深刻。我們也要深入內(nèi)存底層進(jìn)行分析。絕大多數(shù)語(yǔ)言?xún)?nèi)存底層都是高度相似的,這樣大家掌握了這些內(nèi)容也便于以后學(xué)習(xí)其他語(yǔ)言

函數(shù)的基本概念

  • 一個(gè)程序由一個(gè)個(gè)任務(wù)組成;函數(shù)就是代表一個(gè)任務(wù)或者一個(gè)功能。
  • 函數(shù)是代碼復(fù)用的通用機(jī)制。

Python 函數(shù)的分類(lèi)

Python 中函數(shù)分為如下幾類(lèi):

  • 內(nèi)置函數(shù)

我們前面使用的 str()、list()、len()等這些都是內(nèi)置函數(shù),我們可以拿來(lái)直接使用。

  • 標(biāo)準(zhǔn)庫(kù)函數(shù)

我們可以通過(guò) import 語(yǔ)句導(dǎo)入庫(kù),然后使用其中定義的函數(shù)

  • 第三方庫(kù)函數(shù)

Python 社區(qū)也提供了很多高質(zhì)量的庫(kù)。下載安裝這些庫(kù)后,也是通過(guò) import 語(yǔ)句導(dǎo)入,然后可以使用這些第三方庫(kù)的函數(shù)

  • 用戶(hù)自定義函數(shù)

用戶(hù)自己定義的函數(shù),顯然也是開(kāi)發(fā)中適應(yīng)用戶(hù)自身需求定義的函數(shù)。

核心要點(diǎn)

Python 中,定義函數(shù)的語(yǔ)法如下:

def 函數(shù)名 ([參數(shù)列表]) : 
    '''文檔字符串''' 
    函數(shù)體/若干語(yǔ)

要點(diǎn):

  • 我們使用 def 來(lái)定義函數(shù),然后就是一個(gè)空格和函數(shù)名稱(chēng);

(1) Python 執(zhí)行 def 時(shí),會(huì)創(chuàng)建一個(gè)函數(shù)對(duì)象,并綁定到函數(shù)名變量上。

  • 參數(shù)列表

(1) 圓括號(hào)內(nèi)是形式參數(shù)列表,有多個(gè)參數(shù)則使用逗號(hào)隔開(kāi)'

(2) 形式參數(shù)不需要聲明類(lèi)型,也不需要指定函數(shù)返回值類(lèi)型

(3) 無(wú)參數(shù),也必須保留空的圓括號(hào)

(4) 實(shí)參列表必須與形參列表一一對(duì)應(yīng)

  • return 返回值

(1) 如果函數(shù)體中包含 return 語(yǔ)句,則結(jié)束函數(shù)執(zhí)行并返回值;

(2) 如果函數(shù)體中不包含 return 語(yǔ)句,則返回 None 值。

  • 調(diào)用函數(shù)之前,必須要先定義函數(shù),即先調(diào)用 def 創(chuàng)建函數(shù)對(duì)象

(1) 內(nèi)置函數(shù)對(duì)象會(huì)自動(dòng)創(chuàng)建

(2) 標(biāo)準(zhǔn)庫(kù)和第三方庫(kù)函數(shù),通過(guò) import 導(dǎo)入模塊時(shí),會(huì)執(zhí)行模塊中的 def 語(yǔ)

形參和實(shí)參

【操作】定義一個(gè)函數(shù),實(shí)現(xiàn)兩個(gè)數(shù)的比較,并返回較大的值

def print_max(a,b):
    '''實(shí)現(xiàn)兩個(gè)數(shù)的比較,并返回較大的值'''
    if a > b:
        print(a,'MAX')
    else:
        print(b,'MAX')

print_max(10, 20)
print_max(99, -99)

#result
#20 MAX
#99 MAX

上面的 printMax 函數(shù)中,在定義時(shí)寫(xiě)的 print_max(a,b)。a 和 b 稱(chēng)為“形式參數(shù)”,
簡(jiǎn)稱(chēng)“形參”。也就是說(shuō),形式參數(shù)是在定義函數(shù)時(shí)使用的。 形式參數(shù)的命名只要符合“標(biāo)識(shí)符”命名規(guī)則即可。

在調(diào)用函數(shù)時(shí),傳遞的參數(shù)稱(chēng)為“實(shí)際參數(shù)”,簡(jiǎn)稱(chēng)“實(shí)參”。上面代碼中,
printMax(10,20),10 和 20 就是實(shí)際參數(shù)。

文檔字符串(函數(shù)的注釋)

程序的可讀性最重要,一般建議在函數(shù)體開(kāi)始的部分附上函數(shù)定義說(shuō)明,這就是“文檔字符串”,也有人成為“函數(shù)的注釋”。我們通過(guò)三個(gè)單引號(hào)或者三個(gè)雙引號(hào)來(lái)實(shí)現(xiàn),中間可以加入多行文字進(jìn)行說(shuō)明

【操作】測(cè)試文檔字符串的使用

def print_max(a,b):
    '''實(shí)現(xiàn)兩個(gè)數(shù)的比較,并返回較大的值'''
    if a > b:
        print(a,'MAX')
    else:
        print(b,'MAX')

print(help(print_max.__doc__))

#result
#No Python documentation found for '實(shí)現(xiàn)兩個(gè)數(shù)的比較,并返回較大的值'.
#Use help() to get the interactive help utility.
#Use help(str) for help on the str class.
#None

返回值

return 返回值要點(diǎn):

  • 如果函數(shù)體中包含 return 語(yǔ)句,則結(jié)束函數(shù)執(zhí)行并返回值;
  • 如果函數(shù)體中不包含 return 語(yǔ)句,則返回 None 值。
  • 要返回多個(gè)返回值,使用列表、元組、字典、集合將多個(gè)值“存起來(lái)”即可

【操作】計(jì)算a + b 不設(shè)置返回值

def print_star(a,b):
    a + b
c = print_star(4,10)
print(c)

#result
#None

【操作】計(jì)算a + b 設(shè)置返回值

def print_star(a,b):
    c = a + b
    return c

c = print_star(4,10)
print(c)
#result
#14

函數(shù)也是對(duì)象,內(nèi)存底層分析

Python 中,“一切都是對(duì)象”。實(shí)際上,執(zhí)行 def 定義函數(shù)后,系統(tǒng)就創(chuàng)建了相應(yīng)的函數(shù)對(duì)象。我們執(zhí)行如下程序,然后進(jìn)行解釋?zhuān)?/p>

def print_star(n):
    print("*"*n)
print(print_star)
print(id(print_star))
c = print_star
c(3)

#result
#<function print_star at 0x0000000002BB8620>
#45844000
#***

上面代碼執(zhí)行 def 時(shí),系統(tǒng)中會(huì)創(chuàng)建函數(shù)對(duì)象,并通過(guò) print_star 這個(gè)變量進(jìn)行引用:

我們執(zhí)行“c=print_star”后,顯然將 print_star 變量的值賦給了變量 c,內(nèi)存圖變成了:

顯然,我們可以看出變量 c 和 print_star 都是指向了同一個(gè)函數(shù)對(duì)象。因此,執(zhí)行 c(3)和執(zhí)行 print_star(3)的效果是完全一致的。 Python 中,圓括號(hào)意味著調(diào)用函數(shù)。在沒(méi)有圓括號(hào)的情況下,Python 會(huì)把函數(shù)當(dāng)做普通對(duì)象。

變量的作用域(全局變量和局部變量)

變量起作用的范圍稱(chēng)為變量的作用域,不同作用域內(nèi)同名變量之間互不影響。變量分為:全局變量、局部變量。

全局變量:

  • 在函數(shù)和類(lèi)定義之外聲明的變量。作用域?yàn)槎x的模塊,從定義位置開(kāi)始直到模塊結(jié)束。
  • 全局變量降低了函數(shù)的通用性和可讀性。應(yīng)盡量避免全局變量的使用。
  • 全局變量一般做常量使用。
  • 函數(shù)內(nèi)要改變?nèi)肿兞康闹担褂?global 聲明一下

局部變量:

  • 在函數(shù)體中(包含形式參數(shù))聲明的變量。
  • 局部變量的引用比全局變量快,優(yōu)先考慮使用。
  • 如果局部變量和全局變量同名,則在函數(shù)內(nèi)隱藏全局變量,只使用同名的局部變量

【操作】全局變量的作用域測(cè)試

def f1():
    global a #如果要在函數(shù)內(nèi)改變?nèi)肿兞康闹?,增?global 關(guān)鍵字聲明
    print(a) #打印全局變量 a 的值
    a = 300
f1()
print(a)

#result
#100
#300

【操作】全局變量和局部變量同名測(cè)試

a=100
def f1():
    a = 3 #同名的局部變量
    print(a)
f1()
print(a) #a 仍然是 100,沒(méi)有變

#result
#3
#100

【操作】 輸出局部變量和全局變

a = 100
def f1(a, b, c):
    print(a, b, c)
    print(locals())
    print('*' * 20)
    print(globals())

f1(1, 2, 3)

#result
#1 2 3 
#{'a': 1, 'b': 2, 'c': 3} 返回一個(gè)字典
#********************
#{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x0000023F0086CA10>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'c:\\Users\\chenh\\OneDrive\\Data Learn\\Python 基礎(chǔ)\\課堂筆記\\05\\Book_code.py', '__cached__': None, 'a': 100, 'f1': <function f1 at 0x0000023F00810680>}

部變量和全局變量效率測(cè)試

局部變量的查詢(xún)和訪(fǎng)問(wèn)速度比全局變量快,優(yōu)先考慮使用,尤其是在循環(huán)的時(shí)候。在特別強(qiáng)調(diào)效率的地方或者循環(huán)次數(shù)較多的地方,可以通過(guò)將全局變量轉(zhuǎn)為局部變量提高運(yùn)行速度

【操作】測(cè)試局部變量和全局變量效率

#測(cè)試局部變量、全局變量的效率
import time
import math
def test01():
    start = time.time()
    for i  in range(100000000):
        math.sqrt(30)
    end = time.time()
    print('耗時(shí){0}'.format(end - start))

def test02():
    b = math.sqrt
    start = time.time()
    for i  in range(100000000):
        b(30)
    end = time.time()
    print('耗時(shí){0}'.format(end - start))

test01()
test02() 

#result
#耗時(shí)7.24362325668335
#耗時(shí)6.6801464557647705

參數(shù)的傳遞

函數(shù)的參數(shù)傳遞本質(zhì)上就是:從實(shí)參到形參的賦值操作。 Python 中“一切皆對(duì)象”,所有的賦值操作都是“引用的賦值”。所以,Python 中參數(shù)的傳遞都是“引用傳遞”,不是“值傳遞”。具體操作時(shí)分為兩類(lèi):

  • 對(duì)“可變對(duì)象”進(jìn)行“寫(xiě)操作”,直接作用于原對(duì)象本身。
  • 對(duì)“不可變對(duì)象”進(jìn)行“寫(xiě)操作”,會(huì)產(chǎn)生一個(gè)新的“對(duì)象空間”,并用新的值填充這塊空間。(起到其他語(yǔ)言的“值傳遞”效果,但不是“值傳遞”)
    可變對(duì)象有:

字典、列表、集合、自定義的對(duì)象等
不可變對(duì)象有:
數(shù)字、字符串、元組、function

【操作】參數(shù)傳遞:傳遞可變對(duì)象的引用

b = [10,20]
def f2(m):
    print("m:",id(m)) #b 和 m 是同一個(gè)對(duì)象
    m.append(30) #由于 m 是可變對(duì)象,不創(chuàng)建對(duì)象拷貝,直接修改這個(gè)對(duì)象
f2(b)
print("b:",id(b))
print(b)

#result
#m: 1619876826368
#b: 1619876826368
#[10, 20, 30]

傳遞不可變對(duì)象的引用

傳遞參數(shù)是不可變對(duì)象(例如:int、float、字符串、元組、布爾值),實(shí)際傳遞的還是對(duì)象的引用。在”賦值操作”時(shí),由于不可變對(duì)象無(wú)法修改,系統(tǒng)會(huì)新創(chuàng)建一個(gè)對(duì)象。

【操作】參數(shù)傳遞:傳遞不可變對(duì)象的引用

a = 100
def f1(n):
    print("n:",id(n)) #傳遞進(jìn)來(lái)的是 a 對(duì)象的地址
    n = n + 200 #由于 a 是不可變對(duì)象,因此創(chuàng)建新的對(duì)象 n
    print("n:",id(n)) #n 已經(jīng)變成了新的對(duì)象
    print(n)
f1(a)
print("a:",id(a)) #a的內(nèi)存地址并沒(méi)有發(fā)生改變

#result
#n: 140717568683912
#n: 2640908885520
#300
#a: 140717568683912

顯然,通過(guò) id 值我們可以看到 n 和 a 一開(kāi)始是同一個(gè)對(duì)象。給 n 賦值后,n 是新的對(duì)象。

淺拷貝和深拷貝

為了更深入的了解參數(shù)傳遞的底層原理,我們需要講解一下“淺拷貝和深拷貝”。我們可以使用內(nèi)置函數(shù):copy(淺拷貝)、deepcopy(深拷貝)。

淺拷貝:不拷貝子對(duì)象的內(nèi)容,只是拷貝子對(duì)象的引用。
深拷貝:會(huì)連子對(duì)象的內(nèi)存也全部拷貝一份,對(duì)子對(duì)象的修改不會(huì)影響源對(duì)象

【操作】測(cè)試淺拷貝和深拷貝

#測(cè)試淺拷貝和深拷貝
import copy
def testCopy():
    '''測(cè)試淺拷貝'''
    a = [10, 20, [5, 6]]
    b = copy.copy(a)
    print("a", a)
    print("b", b)
    b.append(30)
    b[2].append(7)
    print("淺拷貝......")
    print("a", a)
    print("b", b)

def testDeepCopy():
    '''測(cè)試深拷貝'''
    a = [10, 20, [5, 6]]
    b = copy.deepcopy(a)
    print("a", a)
    print("b", b)
    b.append(30)
    b[2].append(7)
    print("深拷貝......")
    print("a", a)
    print("b", b)

testCopy()
print("*************")
testDeepCopy()

#result
'''
a [10, 20, [5, 6]]
b [10, 20, [5, 6]]
淺拷貝......
a [10, 20, [5, 6, 7]]
b [10, 20, [5, 6, 7], 30]
*************
a [10, 20, [5, 6]]
b [10, 20, [5, 6]]
深拷貝......
a [10, 20, [5, 6]]
b [10, 20, [5, 6, 7], 30]
'''

傳遞不可變對(duì)象包含的子對(duì)象是可變的情況

傳遞不可變對(duì)象時(shí)。不可變對(duì)象里面包含的子對(duì)象是可變的。則方法內(nèi)修改了這個(gè)可變對(duì)象,源對(duì)象也發(fā)生了變化

a = (10,20,[5,6])
print("a:",id(a))

def test01(m):
    print("m:",id(m))
    m[2][0] = 888
    print(m)
    print("m:",id(m))

test01(a)
print(a)

#result
'''
a: 3006159512640
m: 3006159512640
(10, 20, [888, 6])
m: 3006159512640
(10, 20, [888, 6])
'''

參數(shù)的幾種類(lèi)型

位置參數(shù)

函數(shù)調(diào)用時(shí),實(shí)參默認(rèn)按位置順序傳遞,需要個(gè)數(shù)和形參匹配。按位置傳遞的參數(shù),稱(chēng)為:“位置參數(shù)”。

【操作】測(cè)試位置參數(shù)

def f1(a,b,c):
    print(a,b,c)
f1(2,3,4)
f1(2,3) #報(bào)錯(cuò),位置參數(shù)不匹配

#result
'''
2 3 4
Traceback (most recent call last):
  File "c:\Users\chenh\OneDrive\Data Learn\Python 基礎(chǔ)\課堂筆記\05\Book_code.py", line 4, in <module>
    f1(2,3) #報(bào)錯(cuò),位置參數(shù)不匹配
    ^^^^^^^
TypeError: f1() missing 1 required positional argument: 'c'
'''

默認(rèn)值參數(shù)

我們可以為某些參數(shù)設(shè)置默認(rèn)值,這樣這些參數(shù)在傳遞時(shí)就是可選的。稱(chēng)為“默認(rèn)值參數(shù)”。默認(rèn)值參數(shù)放到位置參數(shù)后面。

【操作】測(cè)試默認(rèn)值參數(shù)

def f1(a, b, c=10, d=20): #默認(rèn)值參數(shù)必須位于普通位置參數(shù)后面
    print(a, b, c, d)

f1(9, 8)
f1(8, 9, 19)
f1(8, 9, 19, 29)

#result
'''
9 8 10 20
8 9 19 20
8 9 19 29
'''

命名參數(shù)

我們也可以按照形參的名稱(chēng)傳遞參數(shù),稱(chēng)為“命名參數(shù)”,也稱(chēng)“關(guān)鍵字參數(shù)”。

【操作】測(cè)試命名參數(shù)

def f1(a,b,c):
    print(a,b,c)

f1(8, 9, 19)            #位置參數(shù)
f1(c=10, a=20, b=30)    #命名參數(shù)、

#result
'''
8 9 19
20 30 10
'''

可變參數(shù)

可變參數(shù)指的是“可變數(shù)量的參數(shù)”。分兩種情況:

  • *param(一個(gè)星號(hào)),將多個(gè)參數(shù)收集到一個(gè)“元組”對(duì)象中。
  • **param(兩個(gè)星號(hào)),將多個(gè)參數(shù)收集到一個(gè)“字典”對(duì)象中。

【操作】測(cè)試可變參數(shù)處理(元組、字典兩種方式

def f1(a,b,*c):
    print(a,b,c)

f1(8, 9, 19, 20)

def f2(a,b,**c):
    print(a,b,c)

f2(8, 9, name = 'gaoqi', age = 18)

def f3(a,b,*c,**d):
    print(a,b,c,d)

f3(8, 9, 20, 30, name = 'gaoqi',age = 18)\

#result
'''
8 9 (19, 20)    #將*c參數(shù)放在元組中
8 9 {'name': 'gaoqi', 'age': 18}    #將**c參數(shù)放在字典中
8 9 (20, 30) {'name': 'gaoqi', 'age': 18}
'''

強(qiáng)制命名參數(shù)

在帶星號(hào)的“可變參數(shù)”后面增加新的參數(shù),必須在調(diào)用的時(shí)候“強(qiáng)制命名參數(shù)”。

【操作】強(qiáng)制命名參數(shù)的使用

def f1(*a,b,c):
    print(a,b,c)
#f1(2,3,4) #會(huì)報(bào)錯(cuò)。由于 a 是可變參數(shù),將 2,3,4 全部收集。造成 b 和 c 沒(méi)有賦值。
f1(2,b=3,c=4) 
f1(2, 3, 4, b=10, c=100)
'''
result:
(2,) 3 4
(2, 3, 4) 10 100
'''

lambda 表達(dá)式和匿名函數(shù)

lambda 表達(dá)式可以用來(lái)聲明匿名函數(shù)。lambda 函數(shù)是一種簡(jiǎn)單的、在同一行中定義函數(shù)的方法。lambda 函數(shù)實(shí)際生成了一個(gè)函數(shù)對(duì)象。

lambda 表達(dá)式只允許包含一個(gè)表達(dá)式,不能包含復(fù)雜語(yǔ)句,該表達(dá)式的計(jì)算結(jié)果就是函數(shù)的返回值。

ambda 表達(dá)式的基本語(yǔ)法如下:

lambda arg1,arg2,arg3... : <表達(dá)式>

arg1/arg2/arg3 為函數(shù)的參數(shù)。<表達(dá)式>相當(dāng)于函數(shù)體。運(yùn)算結(jié)果是:表達(dá)式的運(yùn)算結(jié)果。

【操作】lambda 表達(dá)式使

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

print(f)
print(f(2, 3, 4))

'''
result:
<function <lambda> at 0x0000024E1DBA0680>
9
'''

g = [lambda a : a*2, lambda b : b*3, lambda c : c*4]

print(g)
print(g[0](6),g[1](7),g[2](8))

'''
result:
[<function <lambda> at 0x0000019D11368E00>, <function <lambda> at 0x0000019D11368F40>, <function <lambda> at 0x0000019D11368FE0>]
12 21 32
'''

eval()函數(shù)

功能:將字符串 str 當(dāng)成有效的表達(dá)式來(lái)求值并返回計(jì)算結(jié)果。

語(yǔ)法參數(shù):

eval(source[, globals[, locals]]) -> value

source:一個(gè) Python 表達(dá)式或函數(shù) compile()返回的代碼對(duì)象
globals:可選。必須是 dictionary
locals:可選。任意映射對(duì)象
s = "print('abcde')"
eval(s)

a = 10
b = 20
c = eval("a + b")
print(c)

dict1 = dict(a = 100, b = 200)

d = eval("a+b",dict1)
print(d)

'''
result:
abcde
30
300
'''

eval 函數(shù)會(huì)將字符串當(dāng)做語(yǔ)句來(lái)執(zhí)行,因此會(huì)被注入安全隱患。比如:字符串中含有刪除文件的語(yǔ)句。那就麻煩大了。因此,使用時(shí)候,要慎重!??!

遞歸函數(shù)

遞歸函數(shù)指的是:自己調(diào)用自己的函數(shù),在函數(shù)體內(nèi)部直接或間接的自己調(diào)用自己。遞歸類(lèi)似于大家中學(xué)數(shù)學(xué)學(xué)習(xí)過(guò)的“數(shù)學(xué)歸納法”。 每個(gè)遞歸函數(shù)必須包含兩個(gè)部分:

  • 終止條件

表示遞歸什么時(shí)候結(jié)束。一般用于返回值,不再調(diào)用自己。

  • 遞歸步驟

把第 n 步的值和第 n-1 步相關(guān)聯(lián)。

遞歸函數(shù)由于會(huì)創(chuàng)建大量的函數(shù)對(duì)象、過(guò)量的消耗內(nèi)存和運(yùn)算能力。在處理大量數(shù)據(jù)時(shí),謹(jǐn)慎使用。

【操作】 使用遞歸函數(shù)計(jì)算階乘(factorial

def factorial(n):
    if n == 1:
        return 1
    else:
        return n * factorial(n-1)

for i in range(1,11):
    print(i,'!=',factorial(i))

'''
result:
1 != 1
2 != 2
3 != 6
4 != 24
5 != 120
6 != 720
7 != 5040
8 != 40320
9 != 362880
10 != 3628800
'''

到此這篇關(guān)于Python函數(shù)用法和底層分析的文章就介紹到這了,更多相關(guān)Python函數(shù)用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python實(shí)現(xiàn)讀取excel表格詳解方法

    python實(shí)現(xiàn)讀取excel表格詳解方法

    python操作excel主要用到xlrd和xlwt兩個(gè)庫(kù),xlrd讀取表格數(shù)據(jù),支持xlsx和xls格式的excel表格;xlwt寫(xiě)入excel表格數(shù)據(jù)
    2022-07-07
  • django處理select下拉表單實(shí)例(從model到前端到post到form)

    django處理select下拉表單實(shí)例(從model到前端到post到form)

    這篇文章主要介紹了django處理select下拉表單實(shí)例(從model到前端到post到form),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-03-03
  • Python環(huán)境使用OpenCV檢測(cè)人臉實(shí)現(xiàn)教程

    Python環(huán)境使用OpenCV檢測(cè)人臉實(shí)現(xiàn)教程

    這篇文章主要介紹了Python環(huán)境使用OpenCV檢測(cè)人臉實(shí)現(xiàn)教程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • Pycharm之如何安裝cv2 [python3.6]

    Pycharm之如何安裝cv2 [python3.6]

    這篇文章主要介紹了Pycharm之如何安裝cv2 [python3.6]問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • python實(shí)現(xiàn)簡(jiǎn)易淘寶購(gòu)物

    python實(shí)現(xiàn)簡(jiǎn)易淘寶購(gòu)物

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)易淘寶購(gòu)物,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • Python隨手筆記第一篇(2)之初識(shí)列表和元組

    Python隨手筆記第一篇(2)之初識(shí)列表和元組

    Python中,列表和元組是一種數(shù)據(jù)結(jié)構(gòu):序列,序列中的每個(gè)元素都被分配一個(gè)序號(hào),元素的位置,第一原元素的位置為0,因此類(lèi)推,序列是最基本的數(shù)據(jù)結(jié)構(gòu),本文給大家分享Python隨手筆記第一篇(2)之初識(shí)列表和元組,感興趣的朋友一起學(xué)習(xí)吧
    2016-01-01
  • 詳解Python連接MySQL數(shù)據(jù)庫(kù)的多種方式

    詳解Python連接MySQL數(shù)據(jù)庫(kù)的多種方式

    這篇文章主要介紹了Python連接MySQL數(shù)據(jù)庫(kù)方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • .img/.hdr格式轉(zhuǎn).nii格式的操作

    .img/.hdr格式轉(zhuǎn).nii格式的操作

    這篇文章主要介紹了.img/.hdr格式轉(zhuǎn).nii格式的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07
  • python turtle繪圖命令及案例

    python turtle繪圖命令及案例

    這篇文章主要給大家分享的是python turtle繪圖命令及案例,繪圖有很多命令,可以劃分為三種:畫(huà)筆運(yùn)動(dòng)命令、畫(huà)筆控制命令、全局控制命令,下面來(lái)看看文章的詳細(xì)內(nèi)容吧,需要的朋友可以參考一下
    2021-11-11
  • python迭代器模塊itertools常用的方法

    python迭代器模塊itertools常用的方法

    這篇文章主要介紹了python迭代器模塊itertools常用的方法,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09

最新評(píng)論