真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python函數(shù)參數(shù)簽名 python簽名設(shè)計(jì)

pythonCryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA256時(shí)簽名錯(cuò)誤,python簽名如何與postman保持一致?

=?CryptoJS.HmacSHA256(stringSign, key); 4.加密 //我這里是使用16進(jìn)制的方法 具體API 可以打印CryptoJS.enc let hashInHex= CryptoJS.enc.Hex.stringify(hash);

網(wǎng)站建設(shè)公司,為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì)及定制網(wǎng)站建設(shè)服務(wù),專注于企業(yè)網(wǎng)站制作,高端網(wǎng)頁(yè)制作,對(duì)成都展覽展示等多個(gè)行業(yè)擁有豐富的網(wǎng)站建設(shè)經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。專業(yè)網(wǎng)站設(shè)計(jì),網(wǎng)站優(yōu)化推廣哪家好,專業(yè)網(wǎng)站推廣優(yōu)化,H5建站,響應(yīng)式網(wǎng)站。

【Python】基礎(chǔ)總結(jié)

input("提示性信息")

如:

input("請(qǐng)輸入數(shù)字")

因?yàn)?Python 沒(méi)有特別人為規(guī)定數(shù)據(jù)類型,數(shù)據(jù)類型是由計(jì)算機(jī)進(jìn)行判定,所以我們 input() 輸入的數(shù)據(jù)均默認(rèn)作為字符串處理,而如果要輸入一些數(shù)字,著需要 eval() 評(píng)估函數(shù)對(duì)字符串進(jìn)行評(píng)估,化為語(yǔ)句(數(shù)字)。

print(...)

默認(rèn)空一行,如果想不空行,則

print(...., end = "")

特性:

進(jìn)制:

特性:

浮點(diǎn)數(shù)間運(yùn)算存在不確定尾數(shù),不是 bug

如:0.1+0.3 → 0.4

0.1+0.2 → 0.30000000000000004

這是由于在計(jì)算機(jī)中一切數(shù)據(jù)都是化為二進(jìn)制進(jìn)行存儲(chǔ)的,而有的浮點(diǎn)數(shù)并不能完全化為相等的二進(jìn)制數(shù),只能無(wú)限趨近于二進(jìn)制數(shù)。

如:0.1 →

解決方法:

四舍五入:

例如:z = 1.23e-4 + 5.6e+89j

z.real 獲得實(shí)部,z.imag 獲得虛部

三種類型存在一種逐漸“擴(kuò)展”或“變寬”的關(guān)系:

整數(shù) → 浮點(diǎn)數(shù) → 復(fù)數(shù)

特點(diǎn):

字符串有 2 類共 4 種表示方法:

擴(kuò)展:

使用[]獲取字符串中一個(gè)或多個(gè)字符

使用[M:N:K]根據(jù)步長(zhǎng)對(duì)字符串切片

{參數(shù)序號(hào):格式控制標(biāo)記}

右對(duì)齊

^ 居中對(duì)齊 | 槽設(shè)定的輸出寬度 | 數(shù)字的千位分隔符 | 浮點(diǎn)數(shù)小數(shù)精度 或 字符串最大輸出長(zhǎng)度 | 整數(shù)類型

b , c , d , o , x , X

浮點(diǎn)數(shù)類型

e , E , f , % |

填充、對(duì)齊、寬度這三個(gè)一組,例如:

"{0:=^20}".format("PYTHON")

→ '=======PYTHON======='

"{0:*20}".format("BIT")

→ '*****************BIT'

"{:10}".format("BIT")

'BIT '

剩下的三個(gè)一組,例如:

"{0:,.2f}".format(12345.6789)

→ '12,345.68'

"{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}x".format(425)

→ '110101001,Σ,425,651,1a9,1A9'

"{0:e},{0:E},{0:f},{0:%}".format(3.14)

'3.140000e+00,3.140000E+00,3.140000,314.000000%'

↓CloseCode↓

使用 raise 語(yǔ)句拋出一個(gè)指定的異常。

raise [Exception [, args [, traceback]]]

緊湊形式:適用于簡(jiǎn)單表達(dá)式的二分支結(jié)構(gòu)

表達(dá)式1 if 條件 else 表達(dá)式2

例如:

↓CloseCode↓

↓CloseCode↓

↓CloseCode↓

↓CloseCode↓

例如:

↓CloseCode↓

運(yùn)行結(jié)果:

↓CloseCode↓

↓CloseCode↓

例如:

↓CloseCode↓

運(yùn)行結(jié)果:

↓CloseCode↓

↓CloseCode↓

例如:

↓CloseCode↓

運(yùn)行結(jié)果:

↓CloseCode↓

↓CloseCode↓

例如:

↓CloseCode↓

運(yùn)行結(jié)果:

↓CloseCode↓

↓CloseCode↓

例如:

↓CloseCode↓

運(yùn)行結(jié)果:

↓CloseCode↓

由條件控制的循環(huán)運(yùn)行方式

↓CloseCode↓

例如:

↓CloseCode↓

運(yùn)行結(jié)果:

↓CloseCode↓

↓CloseCode↓

↓CloseCode↓

例如:

↓CloseCode↓

運(yùn)行結(jié)果:

↓CloseCode↓

例如:

↓CloseCode↓

運(yùn)行結(jié)果:

↓CloseCode↓

↓CloseCode↓

可選參數(shù)例如:

↓CloseCode↓

運(yùn)行結(jié)果:

↓CloseCode↓

可變參數(shù)例如:

↓CloseCode↓

運(yùn)行結(jié)果:

↓CloseCode↓

在函數(shù)定義中,經(jīng)常會(huì)碰到 *args(arguments) 和作為參數(shù) **kwargs(keyword arguments)。

(事實(shí)上在函數(shù)中,和才是必要的,args 和 kwargs 可以用其他名稱代替)

*args 是指不定數(shù)量的非鍵值對(duì)參數(shù)。

**kwargs 是指不定數(shù)量的鍵值對(duì)參數(shù)。

*args 作為作為元組匹配沒(méi)有指定參數(shù)名的參數(shù)。而 **kwargs 作為字典,匹配指定了參數(shù)名的參數(shù)。

*args 必須位于 **kwargs 之前。

args( 通常緊跟一個(gè)標(biāo)識(shí)符,你會(huì)看到a或者args都是標(biāo)識(shí)符)是python用于接收或者傳遞任意基于位置的參數(shù)的語(yǔ)法。當(dāng)你接收到一個(gè)用這種語(yǔ)法描敘參數(shù)時(shí)(比如你在函數(shù)def語(yǔ)句中對(duì)函數(shù)簽名使用了星號(hào)語(yǔ)法),python會(huì)將此標(biāo)識(shí)符綁定到一個(gè)元祖,該元祖包含了所有基于位置的隱士的接收到的參數(shù)。當(dāng)你用這種語(yǔ)法傳遞參數(shù)時(shí),標(biāo)識(shí)符可以被綁定到任何可迭代對(duì)象(事實(shí)上,它也可以是人和表達(dá)式,并不必須是一個(gè)標(biāo)識(shí)符),只要這個(gè)表達(dá)式的結(jié)果是一個(gè)可迭代的對(duì)象就行。

**kwds(標(biāo)識(shí)符可以是任意的,通常k或者kwds表示)是python用于接收或者傳遞任意基于位置的參數(shù)的語(yǔ)法。(python有時(shí)候會(huì)將命名參數(shù)稱為關(guān)鍵字參數(shù),他們其實(shí)并不是關(guān)鍵字--只是用他們來(lái)給關(guān)鍵字命名,比如pass,for或者yield,還有很多,不幸的是,這種讓人疑惑的術(shù)語(yǔ)目前仍是這門語(yǔ)言極其文化根深蒂固的一個(gè)組成部分。)當(dāng)你接收到用這種語(yǔ)法描敘的一個(gè)參數(shù)時(shí)(比如你在函數(shù)的def語(yǔ)句中對(duì)函數(shù)簽名使用了雙星號(hào)語(yǔ)法)python會(huì)將標(biāo)識(shí)符綁定到一個(gè)字典,該字典包含了所有接收到的隱士的命名參數(shù)。當(dāng)你用這種語(yǔ)法傳遞參數(shù)時(shí),標(biāo)識(shí)符只能被綁定到字典(我ID號(hào)I它也可以是表達(dá)式,不一定是一個(gè)標(biāo)識(shí)符,只要這個(gè)表達(dá)式的結(jié)果是一個(gè)字典即可)。

當(dāng)你在定義或調(diào)用一個(gè)函數(shù)的時(shí)候,必須確保a和k在其他所有參數(shù)之后。如果這兩者同時(shí)出現(xiàn),要將k放在a之后。

lambda函數(shù)返回函數(shù)名作為結(jié)果

↓CloseCode↓

例如:

↓CloseCode↓

運(yùn)行結(jié)果:

↓CloseCode↓

謹(jǐn)慎使用lambda函數(shù)

Python Queue 入門

Queue 叫隊(duì)列,是數(shù)據(jù)結(jié)構(gòu)中的一種,基本上所有成熟的編程語(yǔ)言都內(nèi)置了對(duì) Queue 的支持。

Python 中的 Queue 模塊實(shí)現(xiàn)了多生產(chǎn)者和多消費(fèi)者模型,當(dāng)需要在多線程編程中非常實(shí)用。而且該模塊中的 Queue 類實(shí)現(xiàn)了鎖原語(yǔ),不需要再考慮多線程安全問(wèn)題。

該模塊內(nèi)置了三種類型的 Queue,分別是 class queue.Queue(maxsize=0) , class queue.LifoQueue(maxsize=0) 和 class queue.PriorityQueue(maxsize=0) 。它們?nèi)齻€(gè)的區(qū)別僅僅是取出時(shí)的順序不一致而已。

Queue 是一個(gè) FIFO 隊(duì)列,任務(wù)按照添加的順序被取出。

LifoQueue 是一個(gè) LIFO 隊(duì)列,類似堆棧,后添加的任務(wù)先被取出。

PriorityQueue 是一個(gè)優(yōu)先級(jí)隊(duì)列,隊(duì)列里面的任務(wù)按照優(yōu)先級(jí)排序,優(yōu)先級(jí)高的先被取出。

如你所見(jiàn),就是上面所說(shuō)的三種不同類型的內(nèi)置隊(duì)列,其中 maxsize 是個(gè)整數(shù),用于設(shè)置可以放入隊(duì)列中的任務(wù)數(shù)的上限。當(dāng)達(dá)到這個(gè)大小的時(shí)候,插入操作將阻塞至隊(duì)列中的任務(wù)被消費(fèi)掉。如果 maxsize 小于等于零,則隊(duì)列尺寸為無(wú)限大。

向隊(duì)列中添加任務(wù),直接調(diào)用 put() 函數(shù)即可

put() 函數(shù)完整的函數(shù)簽名如下 Queue.put(item, block=True, timeout=None) ,如你所見(jiàn),該函數(shù)有兩個(gè)可選參數(shù)。

默認(rèn)情況下,在隊(duì)列滿時(shí),該函數(shù)會(huì)一直阻塞,直到隊(duì)列中有空余的位置可以添加任務(wù)為止。如果 timeout 是正數(shù),則最多阻塞 timeout 秒,如果這段時(shí)間內(nèi)還沒(méi)有空余的位置出來(lái),則會(huì)引發(fā) Full 異常。

當(dāng) block 為 false 時(shí),timeout 參數(shù)將失效。同時(shí)如果隊(duì)列中沒(méi)有空余的位置可添加任務(wù)則會(huì)引發(fā) Full 異常,否則會(huì)直接把任務(wù)放入隊(duì)列并返回,不會(huì)阻塞。

另外,還可以通過(guò) Queue.put_nowait(item) 來(lái)添加任務(wù),相當(dāng)于 Queue.put(item, False) ,不再贅述。同樣,在隊(duì)列滿時(shí),該操作會(huì)引發(fā) Full 異常。

從隊(duì)列中獲取任務(wù),直接調(diào)用 get() 函數(shù)即可。

與 put() 函數(shù)一樣, get() 函數(shù)也有兩個(gè)可選參數(shù),完整簽名如下 Queue.get(block=True, timeout=None) 。

默認(rèn)情況下,當(dāng)隊(duì)列空時(shí)調(diào)用該函數(shù)會(huì)一直阻塞,直到隊(duì)列中有任務(wù)可獲取為止。如果 timeout 是正數(shù),則最多阻塞 timeout 秒,如果這段時(shí)間內(nèi)還沒(méi)有任務(wù)可獲取,則會(huì)引發(fā) Empty 異常。

當(dāng) block 為 false 時(shí),timeout 參數(shù)將失效。同時(shí)如果隊(duì)列中沒(méi)有任務(wù)可獲取則會(huì)立刻引發(fā) Empty 異常,否則會(huì)直接獲取一個(gè)任務(wù)并返回,不會(huì)阻塞。

另外,還可以通過(guò) Queue.get_nowait() 來(lái)獲取任務(wù),相當(dāng)于 Queue.get(False) ,不再贅述。同樣,在隊(duì)列為空時(shí),該操作會(huì)引發(fā) Empty 異常。

Queue.qsize() 函數(shù)返回隊(duì)列的大小。注意這個(gè)大小不是精確的,qsize() 0 不保證后續(xù)的 get() 不被阻塞,同樣 qsize() maxsize 也不保證 put() 不被阻塞。

如果隊(duì)列為空,返回 True ,否則返回 False 。如果 empty() 返回 True ,不保證后續(xù)調(diào)用的 put() 不被阻塞。類似的,如果 empty() 返回 False ,也不保證后續(xù)調(diào)用的 get() 不被阻塞。

如果隊(duì)列是滿的返回 True ,否則返回 False 。如果 full() 返回 True 不保證后續(xù)調(diào)用的 get() 不被阻塞。類似的,如果 full() 返回 False 也不保證后續(xù)調(diào)用的 put() 不被阻塞。

queue.Queue() 是 FIFO 隊(duì)列,出隊(duì)順序跟入隊(duì)順序是一致的。

queue.LifoQueue() 是 LIFO 隊(duì)列,出隊(duì)順序跟入隊(duì)順序是完全相反的,類似于棧。

優(yōu)先級(jí)隊(duì)列中的任務(wù)順序跟放入時(shí)的順序是無(wú)關(guān)的,而是按照任務(wù)的大小來(lái)排序,最小值先被取出。那任務(wù)比較大小的規(guī)則是怎么樣的呢。

注意,因?yàn)榱斜淼谋容^對(duì)規(guī)則是按照下標(biāo)順序來(lái)比較的,所以在沒(méi)有比較出大小之前 ,隊(duì)列中所有列表對(duì)應(yīng)下標(biāo)位置的元素類型要一致。

好比 [2,1] 和 ["1","b"] 因?yàn)榈谝粋€(gè)位置的元素類型不一樣,所以是沒(méi)有辦法比較大小的,所以也就放入不了優(yōu)先級(jí)隊(duì)列。

然而對(duì)于 [2,1] 和 [1,"b"] 來(lái)說(shuō)即使第二個(gè)元素的類型不一致也是可以放入優(yōu)先級(jí)隊(duì)列的,因?yàn)橹恍枰容^第一個(gè)位置元素的大小就可以比較出結(jié)果了,就不需要比較第二個(gè)位置元素的大小了。

但是對(duì)于 [2,1] 和 1 [2,"b"] 來(lái)說(shuō),則同樣不可以放入優(yōu)先級(jí)隊(duì)列,因?yàn)樾枰容^第二個(gè)位置的元素才可以比較出結(jié)果,然而第二個(gè)位置的元素類型是不一致的,無(wú)法比較大小。

綜上,也就是說(shuō), 直到在比較出結(jié)果之前,對(duì)應(yīng)下標(biāo)位置的元素類型都是需要一致的 。

下面我們自定義一個(gè)動(dòng)物類型,希望按照年齡大小來(lái)做優(yōu)先級(jí)排序。年齡越小優(yōu)先級(jí)越高。

本章節(jié)介紹了隊(duì)列以及其常用操作。因?yàn)殛?duì)列默認(rèn)實(shí)現(xiàn)了鎖原語(yǔ),因此在多線程編程中就不需要再考慮多線程安全問(wèn)題了,對(duì)于程序員來(lái)說(shuō)相當(dāng)友好了。

用python怎么實(shí)現(xiàn)RSA簽名

你可以使用rsa這個(gè)python庫(kù):

(bob_pub, bob_priv) = rsa.newkeys(512)

message = 'hello Bob!'

crypto = rsa.encrypt(message, bob_pub)

message = rsa.decrypt(crypto, bob_priv)

print message

hello Bob!

希望能幫到你。


文章標(biāo)題:python函數(shù)參數(shù)簽名 python簽名設(shè)計(jì)
轉(zhuǎn)載來(lái)源:http://weahome.cn/article/dodggie.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部