欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

python函數(shù)追蹤 python 鏈路追蹤

python 基礎(chǔ)教程

運(yùn)算

桐柏網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)從2013年創(chuàng)立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)

a = 21

b = 10

c = 0

c = a + b

print "1 - c 的值為:", c

c = a - b

print "2 - c 的值為:", c

c = a * b

print "3 - c 的值為:", c

c = a / b

print "4 - c 的值為:", c

c = a % b

print "5 - c 的值為:", c

a = 2

b = 3

c = a**b

print "6 - c 的值為:", c

a = 10

b = 5

c = a//b

print "7 - c 的值為:", c

python比較

a = 21

b = 10

c = 0

if ( a == b ):

print "1 - a 等于 b"

else:

print "1 - a 不等于 b"

if ( a != b ):

print "2 - a 不等于 b"

else:

print "2 - a 等于 b"

if ( a b ):

print "3 - a 不等于 b"

else:

print "3 - a 等于 b"

if ( a b ):

print "4 - a 小于 b"

else:

print "4 - a 大于等于 b"

if ( a b ):

print "5 - a 大于 b"

else:

print "5 - a 小于等于 b"

a = 5

b = 20

if ( a = b ):

print "6 - a 小于等于 b"

else:

print "6 - a 大于 b"

if ( b = a ):

print "7 - b 大于等于 a"

else:

print "7 - b 小于 a"

賦值

a = 21

b = 10

c = 0

c = a + b

print "1 - c 的值為:", c

c += a

print "2 - c 的值為:", c

c *= a

print "3 - c 的值為:", c

c /= a

print "4 - c 的值為:", c

c = 2

c %= a

print "5 - c 的值為:", c

c **= a

print "6 - c 的值為:", c

c //= a

print "7 - c 的值為:", c

邏輯運(yùn)算符:

a = 10

b = 20

if ( a and b ):

print "1 - 變量 a 和 b 都為 true"

else:

print "1 - 變量 a 和 b 有一個(gè)不為 true"

if ( a or b ):

print "2 - 變量 a 和 b 都為 true,或其中一個(gè)變量為 true"

else:

print "2 - 變量 a 和 b 都不為 true"

a = 0

if ( a and b ):

print "3 - 變量 a 和 b 都為 true"

else:

print "3 - 變量 a 和 b 有一個(gè)不為 true"

if ( a or b ):

print "4 - 變量 a 和 b 都為 true,或其中一個(gè)變量為 true"

else:

print "4 - 變量 a 和 b 都不為 true"

if not( a and b ):

print "5 - 變量 a 和 b 都為 false,或其中一個(gè)變量為 false"

else:

print "5 - 變量 a 和 b 都為 true"

in,not in

a = 10

b = 20

list = [1, 2, 3, 4, 5 ];

if ( a in list ):

print "1 - 變量 a 在給定的列表中 list 中"

else:

print "1 - 變量 a 不在給定的列表中 list 中"

if ( b not in list ):

print "2 - 變量 b 不在給定的列表中 list 中"

else:

print "2 - 變量 b 在給定的列表中 list 中"

a = 2

if ( a in list ):

print "3 - 變量 a 在給定的列表中 list 中"

else:

print "3 - 變量 a 不在給定的列表中 list 中"

條件

flag = False

name = 'luren'

if name == 'python': # 判斷變量否為'python'

flag = True # 條件成立時(shí)設(shè)置標(biāo)志為真

print 'welcome boss' # 并輸出歡迎信息

else:

print name

num = 5

if num == 3: # 判斷num的值

print 'boss'

elif num == 2:

print 'user'

elif num == 1:

print 'worker'

elif num 0: # 值小于零時(shí)輸出

print 'error'

else:

print 'roadman' # 條件均不成立時(shí)輸出

循環(huán)語(yǔ)句:

count = 0

while (count 9):

print 'The count is:', count

count = count + 1

print "Good bye!"

i = 1

while i 10:

i += 1

if i%2 0: # 非雙數(shù)時(shí)跳過(guò)輸出

continue

print i # 輸出雙數(shù)2、4、6、8、10

i = 1

while 1: # 循環(huán)條件為1必定成立

print i # 輸出1~10

i += 1

if i 10: # 當(dāng)i大于10時(shí)跳出循環(huán)

break

for letter in 'Python': # 第一個(gè)實(shí)例

print '當(dāng)前字母 :', letter

fruits = ['banana', 'apple', 'mango']

for fruit in fruits: # 第二個(gè)實(shí)例

print '當(dāng)前水果 :', fruit

print "Good bye!"

獲取用戶輸入:raw_input

var = 1

while var == 1 : # 該條件永遠(yuǎn)為true,循環(huán)將無(wú)限執(zhí)行下去

num = raw_input("Enter a number :")

print "You entered: ", num

print "Good bye!"

range,len

fruits = ['banana', 'apple', 'mango']

for index in range(len(fruits)):

print '當(dāng)前水果 :', fruits[index]

print "Good bye!"

python數(shù)學(xué)函數(shù):

abs,cell,cmp,exp,fabs,floor,log,log10,max,min,mod,pow,round,sqrt

randrange

訪問(wèn)字符串的值

var1 = 'Hello World!'

var2 = "Python Runoob"

print "var1[0]: ", var1[0]

print "var2[1:5]: ", var2[1:5]

轉(zhuǎn)義字符

格式化輸出

print "My name is %s and weight is %d kg!" % ('Zara', 21)

字符串函數(shù):

添加元素

list = [] ## 空列表

list.append('Google') ## 使用 append() 添加元素

list.append('Runoob')

print list

刪除元素

list1 = ['physics', 'chemistry', 1997, 2000]

print list1

del list1[2]

print "After deleting value at index 2 : "

print list1

列表操作

列表方法

刪除字典

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};

del dict['Name']; # 刪除鍵是'Name'的條目

dict.clear(); # 清空詞典所有條目

del dict ; # 刪除詞典

print "dict['Age']: ", dict['Age'];

print "dict['School']: ", dict['School'];

字典的函數(shù):

當(dāng)前時(shí)間戳:

import time

time.time()

格式化日期輸出

import time

print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

print time.strftime("%a %b %d %H:%M:%S %Y", time.localtime())

a = "Sat Mar 28 22:24:24 2016"

print time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y"))

獲取某個(gè)月日歷:calendar

import calendar

cal = calendar.month(2016, 1)

print "以下輸出2016年1月份的日歷:"

print cal

當(dāng)前日期和時(shí)間

import datetime

i = datetime.datetime.now()

print ("當(dāng)前的日期和時(shí)間是 %s" % i)

print ("ISO格式的日期和時(shí)間是 %s" % i.isoformat() )

print ("當(dāng)前的年份是 %s" %i.year)

print ("當(dāng)前的月份是 %s" %i.month)

print ("當(dāng)前的日期是 %s" %i.day)

print ("dd/mm/yyyy 格式是 %s/%s/%s" % (i.day, i.month, i.year) )

print ("當(dāng)前小時(shí)是 %s" %i.hour)

print ("當(dāng)前分鐘是 %s" %i.minute)

print ("當(dāng)前秒是 %s" %i.second)

不定長(zhǎng)參數(shù):*

lambda:匿名函數(shù)

def....

python模塊搜索路徑

獲取用戶輸入

str = raw_input("請(qǐng)輸入:")

print "你輸入的內(nèi)容是: ", str

input可以接收表達(dá)式

open參數(shù)

write要自己添加換行符

讀取10個(gè)字符

重命名:os.rename

os.remove

os.mkdir os.chdir

os.getcwd

os.rmdir

open參數(shù)

file的方法

異常:

try:

fh = open("testfile", "w")

fh.write("這是一個(gè)測(cè)試文件,用于測(cè)試異常!!")

except IOError:

print "Error: 沒(méi)有找到文件或讀取文件失敗"

else:

print "內(nèi)容寫(xiě)入文件成功"

fh.close()

try:

fh = open("testfile", "w")

fh.write("這是一個(gè)測(cè)試文件,用于測(cè)試異常!!")

finally:

print "Error: 沒(méi)有找到文件或讀取文件失敗"

用戶自定義異常:

os 模塊提供了非常豐富的方法用來(lái)處理文件和目錄。常用的方法如下表所示:

| 序號(hào) | 方法及描述 |

| 1 |

os.access(path, mode)

檢驗(yàn)權(quán)限模式 |

| 2 |

os.chdir(path)

改變當(dāng)前工作目錄 |

| 3 |

os.chflags(path, flags)

設(shè)置路徑的標(biāo)記為數(shù)字標(biāo)記。 |

| 4 |

os.chmod(path, mode)

更改權(quán)限 |

| 5 |

os.chown(path, uid, gid)

更改文件所有者 |

| 6 |

os.chroot(path)

改變當(dāng)前進(jìn)程的根目錄 |

| 7 |

os.close(fd)

關(guān)閉文件描述符 fd |

| 8 |

os.closerange(fd_low, fd_high)

關(guān)閉所有文件描述符,從 fd_low (包含) 到 fd_high (不包含), 錯(cuò)誤會(huì)忽略 |

| 9 |

os.dup(fd)

復(fù)制文件描述符 fd |

| 10 |

os.dup2(fd, fd2)

將一個(gè)文件描述符 fd 復(fù)制到另一個(gè) fd2 |

| 11 |

os.fchdir(fd)

通過(guò)文件描述符改變當(dāng)前工作目錄 |

| 12 |

os.fchmod(fd, mode)

改變一個(gè)文件的訪問(wèn)權(quán)限,該文件由參數(shù)fd指定,參數(shù)mode是Unix下的文件訪問(wèn)權(quán)限。 |

| 13 |

os.fchown(fd, uid, gid)

修改一個(gè)文件的所有權(quán),這個(gè)函數(shù)修改一個(gè)文件的用戶ID和用戶組ID,該文件由文件描述符fd指定。 |

| 14 |

os.fdatasync(fd)

強(qiáng)制將文件寫(xiě)入磁盤(pán),該文件由文件描述符fd指定,但是不強(qiáng)制更新文件的狀態(tài)信息。 |

| 15 |

os.fdopen(fd[, mode[, bufsize]])

通過(guò)文件描述符 fd 創(chuàng)建一個(gè)文件對(duì)象,并返回這個(gè)文件對(duì)象 |

| 16 |

os.fpathconf(fd, name)

返回一個(gè)打開(kāi)的文件的系統(tǒng)配置信息。name為檢索的系統(tǒng)配置的值,它也許是一個(gè)定義系統(tǒng)值的字符串,這些名字在很多標(biāo)準(zhǔn)中指定(POSIX.1, Unix 95, Unix 98, 和其它)。 |

| 17 |

os.fstat(fd)

返回文件描述符fd的狀態(tài),像stat()。 |

| 18 |

os.fstatvfs(fd)

返回包含文件描述符fd的文件的文件系統(tǒng)的信息,像 statvfs() |

| 19 |

os.fsync(fd)

強(qiáng)制將文件描述符為fd的文件寫(xiě)入硬盤(pán)。 |

| 20 |

os.ftruncate(fd, length)

裁剪文件描述符fd對(duì)應(yīng)的文件, 所以它最大不能超過(guò)文件大小。 |

| 21 |

os.getcwd()

返回當(dāng)前工作目錄 |

| 22 |

os.getcwdu()

返回一個(gè)當(dāng)前工作目錄的Unicode對(duì)象 |

| 23 |

os.isatty(fd)

如果文件描述符fd是打開(kāi)的,同時(shí)與tty(-like)設(shè)備相連,則返回true, 否則False。 |

| 24 |

os.lchflags(path, flags)

設(shè)置路徑的標(biāo)記為數(shù)字標(biāo)記,類似 chflags(),但是沒(méi)有軟鏈接 |

| 25 |

os.lchmod(path, mode)

修改連接文件權(quán)限 |

| 26 |

os.lchown(path, uid, gid)

更改文件所有者,類似 chown,但是不追蹤鏈接。 |

| 27 |

os.link(src, dst)

創(chuàng)建硬鏈接,名為參數(shù) dst,指向參數(shù) src |

| 28 |

os.listdir(path)

返回path指定的文件夾包含的文件或文件夾的名字的列表。 |

| 29 |

os.lseek(fd, pos, how)

設(shè)置文件描述符 fd當(dāng)前位置為pos, how方式修改: SEEK_SET 或者 0 設(shè)置從文件開(kāi)始的計(jì)算的pos; SEEK_CUR或者 1 則從當(dāng)前位置計(jì)算; os.SEEK_END或者2則從文件尾部開(kāi)始. 在unix,Windows中有效 |

| 30 |

os.lstat(path)

像stat(),但是沒(méi)有軟鏈接 |

| 31 |

os.major(device)

從原始的設(shè)備號(hào)中提取設(shè)備major號(hào)碼 (使用stat中的st_dev或者st_rdev field)。 |

| 32 |

os.makedev(major, minor)

以major和minor設(shè)備號(hào)組成一個(gè)原始設(shè)備號(hào) |

| 33 |

os.makedirs(path[, mode])

遞歸文件夾創(chuàng)建函數(shù)。像mkdir(), 但創(chuàng)建的所有intermediate-level文件夾需要包含子文件夾。 |

| 34 |

os.minor(device)

從原始的設(shè)備號(hào)中提取設(shè)備minor號(hào)碼 (使用stat中的st_dev或者st_rdev field )。 |

| 35 |

os.mkdir(path[, mode])

以數(shù)字mode的mode創(chuàng)建一個(gè)名為path的文件夾.默認(rèn)的 mode 是 0777 (八進(jìn)制)。 |

| 36 |

os.mkfifo(path[, mode])

創(chuàng)建命名管道,mode 為數(shù)字,默認(rèn)為 0666 (八進(jìn)制) |

| 37 |

os.mknod(filename[, mode=0600, device])

創(chuàng)建一個(gè)名為filename文件系統(tǒng)節(jié)點(diǎn)(文件,設(shè)備特別文件或者命名pipe)。

|

| 38 |

os.open(file, flags[, mode])

打開(kāi)一個(gè)文件,并且設(shè)置需要的打開(kāi)選項(xiàng),mode參數(shù)是可選的 |

| 39 |

os.openpty()

打開(kāi)一個(gè)新的偽終端對(duì)。返回 pty 和 tty的文件描述符。 |

| 40 |

os.pathconf(path, name)

返回相關(guān)文件的系統(tǒng)配置信息。 |

| 41 |

os.pipe()

創(chuàng)建一個(gè)管道. 返回一對(duì)文件描述符(r, w) 分別為讀和寫(xiě) |

| 42 |

os.popen(command[, mode[, bufsize]])

從一個(gè) command 打開(kāi)一個(gè)管道 |

| 43 |

os.read(fd, n)

從文件描述符 fd 中讀取最多 n 個(gè)字節(jié),返回包含讀取字節(jié)的字符串,文件描述符 fd對(duì)應(yīng)文件已達(dá)到結(jié)尾, 返回一個(gè)空字符串。 |

| 44 |

os.readlink(path)

返回軟鏈接所指向的文件 |

| 45 |

os.remove(path)

刪除路徑為path的文件。如果path 是一個(gè)文件夾,將拋出OSError; 查看下面的rmdir()刪除一個(gè) directory。 |

| 46 |

os.removedirs(path)

遞歸刪除目錄。 |

| 47 |

os.rename(src, dst)

重命名文件或目錄,從 src 到 dst |

| 48 |

os.renames(old, new)

遞歸地對(duì)目錄進(jìn)行更名,也可以對(duì)文件進(jìn)行更名。 |

| 49 |

os.rmdir(path)

刪除path指定的空目錄,如果目錄非空,則拋出一個(gè)OSError異常。 |

| 50 |

os.stat(path)

獲取path指定的路徑的信息,功能等同于C API中的stat()系統(tǒng)調(diào)用。 |

| 51 |

os.stat_float_times([newvalue])

決定stat_result是否以float對(duì)象顯示時(shí)間戳

|

| 52 |

os.statvfs(path)

獲取指定路徑的文件系統(tǒng)統(tǒng)計(jì)信息 |

| 53 |

os.symlink(src, dst)

創(chuàng)建一個(gè)軟鏈接 |

| 54 |

os.tcgetpgrp(fd)

返回與終端fd(一個(gè)由os.open()返回的打開(kāi)的文件描述符)關(guān)聯(lián)的進(jìn)程組 |

| 55 |

os.tcsetpgrp(fd, pg)

設(shè)置與終端fd(一個(gè)由os.open()返回的打開(kāi)的文件描述符)關(guān)聯(lián)的進(jìn)程組為pg。 |

| 56 |

os.tempnam([dir[, prefix]])

返回唯一的路徑名用于創(chuàng)建臨時(shí)文件。 |

| 57 |

os.tmpfile()

返回一個(gè)打開(kāi)的模式為(w+b)的文件對(duì)象 .這文件對(duì)象沒(méi)有文件夾入口,沒(méi)有文件描述符,將會(huì)自動(dòng)刪除。 |

| 58 |

os.tmpnam()

為創(chuàng)建一個(gè)臨時(shí)文件返回一個(gè)唯一的路徑 |

| 59 |

os.ttyname(fd)

返回一個(gè)字符串,它表示與文件描述符fd 關(guān)聯(lián)的終端設(shè)備。如果fd 沒(méi)有與終端設(shè)備關(guān)聯(lián),則引發(fā)一個(gè)異常。 |

| 60 |

os.unlink(path)

刪除文件路徑 |

| 61 |

os.utime(path, times)

返回指定的path文件的訪問(wèn)和修改的時(shí)間。 |

| 62 |

os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])

輸出在文件夾中的文件名通過(guò)在樹(shù)中游走,向上或者向下。 |

| 63 |

os.write(fd, str)

寫(xiě)入字符串到文件描述符 fd中. 返回實(shí)際寫(xiě)入的字符串長(zhǎng)度 |

目標(biāo)跟蹤(5)使用 Opencv 和 Python 進(jìn)行對(duì)象跟蹤

在本教程中,我們將學(xué)習(xí)如何基于 Opencv 和 Python 實(shí)現(xiàn)對(duì)象跟蹤。

首先必須明確目標(biāo)檢測(cè)和目標(biāo)跟蹤有什么區(qū)別:

我們將首先討論對(duì)象檢測(cè),然后討論如何將對(duì)象跟蹤應(yīng)用于檢測(cè)。

可能有不同的應(yīng)用,例如,計(jì)算某個(gè)區(qū)域有多少人,檢查傳送帶上有多少物體通過(guò),或者計(jì)算高速公路上的車輛。

當(dāng)然,看過(guò)本教程后,您會(huì)很容易地想到數(shù)以千計(jì)的想法應(yīng)用于現(xiàn)實(shí)生活或可能應(yīng)用于工業(yè)。

在本教程中,我們將使用 3 個(gè)文件:

首先我們需要調(diào)用highway.mp4文件并創(chuàng)建一個(gè)mask:

正如您在示例代碼中看到的,我們還使用了 createBackgroundSubtractorMOG2 函數(shù),該函數(shù)返回背景比率(background ratio),然后創(chuàng)建mask。

mask可視化結(jié)果:

但是,如您所見(jiàn),圖像中有很多噪點(diǎn)。因此,讓我們通過(guò)刪除所有較小的元素來(lái)改進(jìn)提取,并將我們的注意力集中在大于某個(gè)面積的對(duì)象上。

使用 OpenCV 的cv2.drawContours函數(shù)繪制輪廓,我們得到了這個(gè)結(jié)果。

就本教程而言,分析整個(gè)窗口并不重要。我們只對(duì)計(jì)算在某個(gè)點(diǎn)通過(guò)的所有車輛感興趣,因此,我們必須定義一個(gè)感興趣的區(qū)域 ROI 并僅在該區(qū)域應(yīng)用mask。

結(jié)果可視化如下:

函數(shù) cv2.createBackgroundSubtractorMOG2 是在開(kāi)始時(shí)添加的,沒(méi)有定義參數(shù),現(xiàn)在讓我們看看如何進(jìn)一步改進(jìn)我們的結(jié)果。history是第一個(gè)參數(shù),在這種情況下,它設(shè)置為 100,因?yàn)橄鄼C(jī)是固定的。varThreshold改為 40,因?yàn)樵撝翟降停`報(bào)的可能性就越大。在這種情況下,我們只對(duì)較大的對(duì)象感興趣。

在繼續(xù)處理矩形之前,我們對(duì)圖像進(jìn)行了進(jìn)一步的清理。為此,閾值函數(shù)就派上用場(chǎng)了。從我們的mask開(kāi)始,我們告訴它我們只想顯示白色或黑色值,因此通過(guò)編寫(xiě)254, 255,只會(huì)考慮 254 和 255 之間的值。

然后我們將找到的對(duì)象的坐標(biāo)插入到 if 條件中并繪制矩形

這是最終結(jié)果:

我們現(xiàn)在只需導(dǎo)入和集成跟蹤功能。

一旦創(chuàng)建了對(duì)象,我們必須獲取邊界框的每個(gè)位置并將它們插入到單個(gè)數(shù)組中。

通過(guò)在屏幕上顯示結(jié)果,您可以看到所有通過(guò) ROI 的通道是如何被識(shí)別的,以及它們的位置是如何插入到特定的數(shù)組中的。顯然,識(shí)別的摩托車越多,我們的數(shù)組就越大。

現(xiàn)在讓我們將帶有位置的數(shù)組傳遞給tracker.update()。我們將再次獲得一個(gè)包含位置的數(shù)組,但此外,將為每個(gè)對(duì)象分配一個(gè)唯一的 ID。

從代碼中可以看出,我們可以使用 for 循環(huán)分析所有內(nèi)容。此時(shí)我們只需要繪制矩形并顯示車輛 ID。

在圖像中,您可以看到結(jié)果

main.py

從視頻中也可以看到,我們已經(jīng)獲得了我們?cè)诒窘坛涕_(kāi)始時(shí)設(shè)置的結(jié)果。

但是,您必須將其視為練習(xí)或起點(diǎn),因?yàn)殛P(guān)于這個(gè)主題有很多話要說(shuō),而本教程的目的只是讓您了解對(duì)象跟蹤的原理。

如果你想將 Object Tracking 集成到你的項(xiàng)目中,你應(yīng)該使用更可靠和先進(jìn)的對(duì)象檢測(cè)方法,以及跟蹤方法。

完整代碼地址:私信“333”直接獲取或者「鏈接」

Python的函數(shù)參數(shù)總結(jié)

import math

a = abs

print(a(-1))

n1 = 255

print(str(hex(n1)))

def my_abs(x):

# 增加了參數(shù)的檢查

if not isinstance(x, (int, float)):

raise TypeError('bad operand type')

if x = 0:

return x

else:

return -x

print(my_abs(-3))

def nop():

pass

if n1 = 255:

pass

def move(x, y, step, angle=0):

nx = x + step * math.cos(angle)

ny = y - step * math.sin(angle)

return nx, ny

x, y = move(100, 100, 60, math.pi / 6)

print(x, y)

tup = move(100, 100, 60, math.pi / 6)

print(tup)

print(isinstance(tup, tuple))

def quadratic(a, b, c):

k = b * b - 4 * a * c

# print(k)

# print(math.sqrt(k))

if k 0:

print('This is no result!')

return None

elif k == 0:

x1 = -(b / 2 * a)

x2 = x1

return x1, x2

else:

x1 = (-b + math.sqrt(k)) / (2 * a)

x2 = (-b - math.sqrt(k)) / (2 * a)

return x1, x2

print(quadratic(2, 3, 1))

def power(x, n=2):

s = 1

while n 0:

n = n - 1

s = s * x

return s

print(power(2))

print(power(2, 3))

def enroll(name, gender, age=8, city='BeiJing'):

print('name:', name)

print('gender:', gender)

print('age:', age)

print('city:', city)

enroll('elder', 'F')

enroll('android', 'B', 9)

enroll('pythone', '6', city='AnShan')

def add_end(L=[]):

L.append('end')

return L

print(add_end())

print(add_end())

print(add_end())

def add_end_none(L=None):

if L is None:

L = []

L.append('END')

return L

print(add_end_none())

print(add_end_none())

print(add_end_none())

def calc(*nums):

sum = 0

for n in nums:

sum = sum + n * n

return sum

print(calc(1, 2, 3))

print(calc())

l = [1, 2, 3, 4]

print(calc(*l))

def foo(x, y):

print('x is %s' % x)

print('y is %s' % y)

foo(1, 2)

foo(y=1, x=2)

def person(name, age, **kv):

print('name:', name, 'age:', age, 'other:', kv)

person('Elder', '8')

person('Android', '9', city='BeiJing', Edu='人民大學(xué)')

extra = {'city': 'Beijing', 'job': 'Engineer'}

person('Jack', 24, **extra)

def person2(name, age, *, city, job):

print(name, age, city, job)

person2('Pthon', 8, city='BeiJing', job='Android Engineer')

def person3(name, age, *other, city='BeiJing', job='Android Engineer'):

print(name, age, other, city, job)

person3('Php', 18, 'test', 1, 2, 3)

person3('Php2', 28, 'test', 1, 2, 3, city='ShangHai', job='Pyhton Engineer')

def test2(a, b, c=0, *args, key=None, **kw):

print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'key=', key, 'kw =', kw)

test2(1, 2, 3, 'a', 'b', 'c', key='key', other='extra')

args = (1, 2, 3, 4)

kw = {'d': 99, 'x': '#'}

test2(*args, **kw)

python-opencv怎樣找到要跟蹤對(duì)象的HSV

其實(shí)這真的很簡(jiǎn)單,函數(shù) cv2.cvtColor() 也可以用到這里。但是現(xiàn)在你要傳入的參數(shù)是(你想要

的)BGR 值而不是一副圖。例如,我們要找到綠色的 HSV 值,我們只需在終端輸入以下命令:

**import cv2

import numpy as np

green=np.uint8([0,255,0])

hsv_green=cv2.cvtColor(green,cv2.COLOR_BGR2HSV)

error: /builddir/build/BUILD/opencv-2.4.6.1/

modules/imgproc/src/color.cpp:3541:

error: (-215) (scn == 3 || scn == 4) (depth == CV_8U || depth == CV_32F)

in function cvtColor

#scn (the number of channels of the source),

#i.e. self.img.channels(), is neither 3 nor 4.

#

#depth (of the source),

#i.e. self.img.depth(), is neither CV_8U nor CV_32F.

# 所以不能用 [0,255,0] ,而要用 [[[0,255,0]]]

# 這里的三層括號(hào)應(yīng)該分別對(duì)應(yīng)于 cvArray , cvMat , IplImage

green=np.uint8([[[0,255,0]]])

hsv_green=cv2.cvtColor(green,cv2.COLOR_BGR2HSV)

print hsv_green

[[[60 255 255]]]**1234567891011121314151617181912345678910111213141516171819

**擴(kuò)展縮放只是改變圖像的尺寸大小。OpenCV 提供的函數(shù) cv2.resize()

可以實(shí)現(xiàn)這個(gè)功能。圖像的尺寸可以自己手動(dòng)設(shè)置,你也可以指定縮放因子。我

們可以選擇使用不同的插值方法。在縮放時(shí)我們推薦使用 cv2.INTER_AREA,

在擴(kuò)展時(shí)我們推薦使用 v2.INTER_CUBIC(慢) 和 v2.INTER_LINEAR。

默認(rèn)情況下所有改變圖像尺寸大小的操作使用的插值方法都是 cv2.INTER_LINEAR。

你可以使用下面任意一種方法改變圖像的尺寸:**

12345671234567

**# -*- coding: utf-8 -*-

"""

@author: Andrew

"""

import cv2

import numpy as np

img=cv2.imread('tu.jpg')

res=cv2.resize(img,None,fx=2,fy=2,interpolation=cv2.INTER_CUBIC)

height,width=img.shape[:2]

res=cv2.resize(img,(2*width,2*height),interpolation=cv2.INTER_CUBIC)

while(1):

cv2.imshow('res',res)

cv2.imshow('img',img)

if cv2.waitKey(1)0xFF==27:

break

cv2.destroyAllWindows()**1234567891011121314151617181920212212345678910111213141516171819202122

Python的函數(shù)都有哪些?

Python 函數(shù)

函數(shù)是組織好的,可重復(fù)使用的,用來(lái)實(shí)現(xiàn)單一,或相關(guān)聯(lián)功能的代碼段。

函數(shù)能提高應(yīng)用的模塊性,和代碼的重復(fù)利用率。你已經(jīng)知道Python提供了許多內(nèi)建函數(shù),比如print()。但你也可以自己創(chuàng)建函數(shù),這被叫做用戶自定義函數(shù)。

定義一個(gè)函數(shù)

你可以定義一個(gè)由自己想要功能的函數(shù),以下是簡(jiǎn)單的規(guī)則:

函數(shù)代碼塊以?def?關(guān)鍵詞開(kāi)頭,后接函數(shù)標(biāo)識(shí)符名稱和圓括號(hào)()。

任何傳入?yún)?shù)和自變量必須放在圓括號(hào)中間。圓括號(hào)之間可以用于定義參數(shù)。

函數(shù)的第一行語(yǔ)句可以選擇性地使用文檔字符串—用于存放函數(shù)說(shuō)明。

函數(shù)內(nèi)容以冒號(hào)起始,并且縮進(jìn)。

return [表達(dá)式]?結(jié)束函數(shù),選擇性地返回一個(gè)值給調(diào)用方。不帶表達(dá)式的return相當(dāng)于返回 None。

語(yǔ)法

def functionname( parameters ): ? "函數(shù)_文檔字符串"

function_suite

return [expression]

默認(rèn)情況下,參數(shù)值和參數(shù)名稱是按函數(shù)聲明中定義的順序匹配起來(lái)的。

實(shí)例

以下為一個(gè)簡(jiǎn)單的Python函數(shù),它將一個(gè)字符串作為傳入?yún)?shù),再打印到標(biāo)準(zhǔn)顯示設(shè)備上。

實(shí)例(Python 2.0+)

def printme( str ): ? "打印傳入的字符串到標(biāo)準(zhǔn)顯示設(shè)備上"

print str

return

函數(shù)調(diào)用

定義一個(gè)函數(shù)只給了函數(shù)一個(gè)名稱,指定了函數(shù)里包含的參數(shù),和代碼塊結(jié)構(gòu)。

這個(gè)函數(shù)的基本結(jié)構(gòu)完成以后,你可以通過(guò)另一個(gè)函數(shù)調(diào)用執(zhí)行,也可以直接從Python提示符執(zhí)行。

如下實(shí)例調(diào)用了printme()函數(shù):

實(shí)例(Python 2.0+)

#!/usr/bin/python# -*- coding: UTF-8 -*-

# 定義函數(shù)def printme( str ): ? "打印任何傳入的字符串"

print str

return

# 調(diào)用函數(shù)printme("我要調(diào)用用戶自定義函數(shù)!")printme("再次調(diào)用同一函數(shù)")

以上實(shí)例輸出結(jié)果:

我要調(diào)用用戶自定義函數(shù)!再次調(diào)用同一函數(shù)

參數(shù)傳遞

在 python 中,類型屬于對(duì)象,變量是沒(méi)有類型的:

a=[1,2,3]

a="Runoob"

以上代碼中,[1,2,3]?是 List 類型,"Runoob"?是 String 類型,而變量 a 是沒(méi)有類型,她僅僅是一個(gè)對(duì)象的引用(一個(gè)指針),可以是 List 類型對(duì)象,也可以指向 String 類型對(duì)象。

可更改(mutable)與不可更改(immutable)對(duì)象

在 python 中,strings, tuples, 和 numbers 是不可更改的對(duì)象,而 list,dict 等則是可以修改的對(duì)象。

不可變類型:變量賦值?a=5?后再賦值?a=10,這里實(shí)際是新生成一個(gè) int 值對(duì)象 10,再讓 a 指向它,而 5 被丟棄,不是改變a的值,相當(dāng)于新生成了a。

可變類型:變量賦值?la=[1,2,3,4]?后再賦值?la[2]=5?則是將 list la 的第三個(gè)元素值更改,本身la沒(méi)有動(dòng),只是其內(nèi)部的一部分值被修改了。

python 函數(shù)的參數(shù)傳遞:

不可變類型:類似 c++ 的值傳遞,如 整數(shù)、字符串、元組。如fun(a),傳遞的只是a的值,沒(méi)有影響a對(duì)象本身。比如在 fun(a)內(nèi)部修改 a 的值,只是修改另一個(gè)復(fù)制的對(duì)象,不會(huì)影響 a 本身。

可變類型:類似 c++ 的引用傳遞,如 列表,字典。如 fun(la),則是將 la 真正的傳過(guò)去,修改后fun外部的la也會(huì)受影響

python 中一切都是對(duì)象,嚴(yán)格意義我們不能說(shuō)值傳遞還是引用傳遞,我們應(yīng)該說(shuō)傳不可變對(duì)象和傳可變對(duì)象。

python 傳不可變對(duì)象實(shí)例

實(shí)例(Python 2.0+)

#!/usr/bin/python# -*- coding: UTF-8 -*-

def ChangeInt( a ): ? ?a = 10

b = 2ChangeInt(b)print b # 結(jié)果是 2

實(shí)例中有 int 對(duì)象 2,指向它的變量是 b,在傳遞給 ChangeInt 函數(shù)時(shí),按傳值的方式復(fù)制了變量 b,a 和 b 都指向了同一個(gè) Int 對(duì)象,在 a=10 時(shí),則新生成一個(gè) int 值對(duì)象 10,并讓 a 指向它。

傳可變對(duì)象實(shí)例

實(shí)例(Python 2.0+)

#!/usr/bin/python# -*- coding: UTF-8 -*-

# 可寫(xiě)函數(shù)說(shuō)明def changeme( mylist ): ? "修改傳入的列表"

mylist.append([1,2,3,4])

print "函數(shù)內(nèi)取值: ", mylist

return

# 調(diào)用changeme函數(shù)mylist = [10,20,30]changeme( mylist )print "函數(shù)外取值: ", mylist

實(shí)例中傳入函數(shù)的和在末尾添加新內(nèi)容的對(duì)象用的是同一個(gè)引用,故輸出結(jié)果如下:

函數(shù)內(nèi)取值: ?[10, 20, 30, [1, 2, 3, 4]]函數(shù)外取值: ?[10, 20, 30, [1, 2, 3, 4]]

參數(shù)

以下是調(diào)用函數(shù)時(shí)可使用的正式參數(shù)類型:

必備參數(shù)

關(guān)鍵字參數(shù)

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

不定長(zhǎng)參數(shù)

必備參數(shù)

必備參數(shù)須以正確的順序傳入函數(shù)。調(diào)用時(shí)的數(shù)量必須和聲明時(shí)的一樣。

調(diào)用printme()函數(shù),你必須傳入一個(gè)參數(shù),不然會(huì)出現(xiàn)語(yǔ)法錯(cuò)誤:

實(shí)例(Python 2.0+)

#!/usr/bin/python# -*- coding: UTF-8 -*-

#可寫(xiě)函數(shù)說(shuō)明def printme( str ): ? "打印任何傳入的字符串"

print str

return

#調(diào)用printme函數(shù)printme()

以上實(shí)例輸出結(jié)果:

Traceback (most recent call last):

File "test.py", line 11, in module

printme()TypeError: printme() takes exactly 1 argument (0 given)

關(guān)鍵字參數(shù)

關(guān)鍵字參數(shù)和函數(shù)調(diào)用關(guān)系緊密,函數(shù)調(diào)用使用關(guān)鍵字參數(shù)來(lái)確定傳入的參數(shù)值。

使用關(guān)鍵字參數(shù)允許函數(shù)調(diào)用時(shí)參數(shù)的順序與聲明時(shí)不一致,因?yàn)?Python 解釋器能夠用參數(shù)名匹配參數(shù)值。

以下實(shí)例在函數(shù) printme() 調(diào)用時(shí)使用參數(shù)名:

實(shí)例(Python 2.0+)

#!/usr/bin/python# -*- coding: UTF-8 -*-

#可寫(xiě)函數(shù)說(shuō)明def printme( str ): ? "打印任何傳入的字符串"

print str

return

#調(diào)用printme函數(shù)printme( str = "My string")

以上實(shí)例輸出結(jié)果:

My string

下例能將關(guān)鍵字參數(shù)順序不重要展示得更清楚:

實(shí)例(Python 2.0+)

#!/usr/bin/python# -*- coding: UTF-8 -*-

#可寫(xiě)函數(shù)說(shuō)明def printinfo( name, age ): ? "打印任何傳入的字符串"

print "Name: ", name

print "Age ", age

return

#調(diào)用printinfo函數(shù)printinfo( age=50, name="miki" )

以上實(shí)例輸出結(jié)果:

Name: ?mikiAge ?50

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

調(diào)用函數(shù)時(shí),默認(rèn)參數(shù)的值如果沒(méi)有傳入,則被認(rèn)為是默認(rèn)值。下例會(huì)打印默認(rèn)的age,如果age沒(méi)有被傳入:

實(shí)例(Python 2.0+)

#!/usr/bin/python# -*- coding: UTF-8 -*-

#可寫(xiě)函數(shù)說(shuō)明def printinfo( name, age = 35 ): ? "打印任何傳入的字符串"

print "Name: ", name

print "Age ", age

return

#調(diào)用printinfo函數(shù)printinfo( age=50, name="miki" )printinfo( name="miki" )

以上實(shí)例輸出結(jié)果:

Name: ?mikiAge ?50Name: ?mikiAge ?35

不定長(zhǎng)參數(shù)

你可能需要一個(gè)函數(shù)能處理比當(dāng)初聲明時(shí)更多的參數(shù)。這些參數(shù)叫做不定長(zhǎng)參數(shù),和上述2種參數(shù)不同,聲明時(shí)不會(huì)命名。基本語(yǔ)法如下:

def functionname([formal_args,] *var_args_tuple ): ? "函數(shù)_文檔字符串"

function_suite

return [expression]

加了星號(hào)(*)的變量名會(huì)存放所有未命名的變量參數(shù)。不定長(zhǎng)參數(shù)實(shí)例如下:

實(shí)例(Python 2.0+)

#!/usr/bin/python# -*- coding: UTF-8 -*-

# 可寫(xiě)函數(shù)說(shuō)明def printinfo( arg1, *vartuple ): ? "打印任何傳入的參數(shù)"

print "輸出: "

print arg1

for var in vartuple: ? ? ?print var

return

# 調(diào)用printinfo 函數(shù)printinfo( 10 )printinfo( 70, 60, 50 )

以上實(shí)例輸出結(jié)果:

輸出:10輸出:706050

匿名函數(shù)

python 使用 lambda 來(lái)創(chuàng)建匿名函數(shù)。

lambda只是一個(gè)表達(dá)式,函數(shù)體比def簡(jiǎn)單很多。

lambda的主體是一個(gè)表達(dá)式,而不是一個(gè)代碼塊。僅僅能在lambda表達(dá)式中封裝有限的邏輯進(jìn)去。

lambda函數(shù)擁有自己的命名空間,且不能訪問(wèn)自有參數(shù)列表之外或全局命名空間里的參數(shù)。

雖然lambda函數(shù)看起來(lái)只能寫(xiě)一行,卻不等同于C或C++的內(nèi)聯(lián)函數(shù),后者的目的是調(diào)用小函數(shù)時(shí)不占用棧內(nèi)存從而增加運(yùn)行效率。

語(yǔ)法

lambda函數(shù)的語(yǔ)法只包含一個(gè)語(yǔ)句,如下:

lambda [arg1 [,arg2,.....argn]]:expression

如下實(shí)例:

實(shí)例(Python 2.0+)

#!/usr/bin/python# -*- coding: UTF-8 -*-

# 可寫(xiě)函數(shù)說(shuō)明sum = lambda arg1, arg2: arg1 + arg2

# 調(diào)用sum函數(shù)print "相加后的值為 : ", sum( 10, 20 )print "相加后的值為 : ", sum( 20, 20 )

以上實(shí)例輸出結(jié)果:

相加后的值為 : ?30相加后的值為 : ?40

return 語(yǔ)句

return語(yǔ)句[表達(dá)式]退出函數(shù),選擇性地向調(diào)用方返回一個(gè)表達(dá)式。不帶參數(shù)值的return語(yǔ)句返回None。之前的例子都沒(méi)有示范如何返回?cái)?shù)值,下例便告訴你怎么做:

實(shí)例(Python 2.0+)

#!/usr/bin/python# -*- coding: UTF-8 -*-

# 可寫(xiě)函數(shù)說(shuō)明def sum( arg1, arg2 ): ? # 返回2個(gè)參數(shù)的和."

total = arg1 + arg2

print "函數(shù)內(nèi) : ", total

return total

# 調(diào)用sum函數(shù)total = sum( 10, 20 )

以上實(shí)例輸出結(jié)果:

函數(shù)內(nèi) : ?30

變量作用域

一個(gè)程序的所有的變量并不是在哪個(gè)位置都可以訪問(wèn)的。訪問(wèn)權(quán)限決定于這個(gè)變量是在哪里賦值的。

變量的作用域決定了在哪一部分程序你可以訪問(wèn)哪個(gè)特定的變量名稱。兩種最基本的變量作用域如下:

全局變量

局部變量

全局變量和局部變量

定義在函數(shù)內(nèi)部的變量擁有一個(gè)局部作用域,定義在函數(shù)外的擁有全局作用域。

局部變量只能在其被聲明的函數(shù)內(nèi)部訪問(wèn),而全局變量可以在整個(gè)程序范圍內(nèi)訪問(wèn)。調(diào)用函數(shù)時(shí),所有在函數(shù)內(nèi)聲明的變量名稱都將被加入到作用域中。如下實(shí)例:

實(shí)例(Python 2.0+)

#!/usr/bin/python# -*- coding: UTF-8 -*-

total = 0 # 這是一個(gè)全局變量# 可寫(xiě)函數(shù)說(shuō)明def sum( arg1, arg2 ): ? #返回2個(gè)參數(shù)的和."

total = arg1 + arg2 # total在這里是局部變量.

print "函數(shù)內(nèi)是局部變量 : ", total

return total

#調(diào)用sum函數(shù)sum( 10, 20 )print "函數(shù)外是全局變量 : ", total

以上實(shí)例輸出結(jié)果:

函數(shù)內(nèi)是局部變量 : ?30函數(shù)外是全局變量 : ?0

文章名稱:python函數(shù)追蹤 python 鏈路追蹤
本文路徑:http://chinadenli.net/article2/hgohoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司定制開(kāi)發(fā)企業(yè)建站用戶體驗(yàn)靜態(tài)網(wǎng)站動(dòng)態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開(kāi)發(fā)