python常用函數及模組

來源:互聯網
上載者:User

標籤:訊息   obj   sig   split   object   type   sorted   產生   十六進位   

原文來源於部落格園和CSDN

1.計算函數

abs()--取絕對值

max()--取序列最大值,包括列表、元組

min()--取序列最小值

len()--取長度

divmod(a,b)---取a//b除數整數以及餘數,成為一個元組

pow(x,y)--取x的Y次冪

pow(x,y,z)先x的Y次冪,再對Z取餘

round()--修改精度,如果沒有,預設取0位

range()快速產生一個列表

2.其他函數

callable()--返回是否可調用返回true或false

isinstance(a,type)---判斷前面的是否是後面的這種類型,返回true或false

cmp(a,b)---判斷ab是否相等,相等返回0,A<B返回-1,A>B返回1

range()--快速產生一個列表,類型為list

xrange()---快速產生一個列表,類型為xrange

3.類型轉換函式

type()

int()

long()

float()

complex()--轉換成負數

hex()--轉換成十六進位

oct()--轉換成八進位

chr()--參數0-252,返回當前的ASCII碼

ord()--參數ASCII碼,返回對應的十進位整數

4.string函數

str.capitalize()--對字串首字母大寫

str.replace(a.b)---對字串a改為b

str.split()---對字串進行分割,第一個參數是分隔字元,後面參數是分割幾次。

string函數匯入使用

5.序列函數

filter()--篩選返回為true返回成序列

lambda--定義函數

zip()---對多個列表進行壓縮組合成一個新列表,但是如果多個列表的元素個數不同,組合的結果按最少元素的進行組合

map--對多個列表進行壓縮組合成一個新列表,但是如果多個列表的元素個數不同,結果是將所有的元素取出來,缺少的以None代替。如果是None,直接組合,如果是函數,可以按函數進行組合

reduce()--對每個元素先前兩個執行函數,然後結果和後一個元素進行函數操作,如階乘,階加

 

-----------------------------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------------------------

urlencode與urldecode

當url中包含中文或者參數包含中文,需要對中文或者特殊字元(/、&)做編碼轉換。
urlencode的本質:把字串轉為gbk編碼,再把\x替換成%。如果終端是utf8編碼的,需要把結果再轉成utf8輸出,否則會亂碼。

urlencode

urllib庫裡面的urlencode函數,可以把key-value健值對的key、value都進行urlencode並轉換成a=1&b=2的字串。

#key-value健值對>>> from urllib import urlencode>>> data={‘a‘:‘a1‘,‘b‘:‘中文‘}>>> print urlencode(data)a=a1&b=%E4%B8%AD%E6%96%87>>> data={‘a‘:‘a1‘,‘b測試‘:‘中文‘}>>> print urlencode(data)a=a1&b%E6%B5%8B%E8%AF%95=%E4%B8%AD%E6%96%87

urllib庫裡面的quote函數,可以針對單個字串進行urlencode轉換。

#string>>> from urllib import quote>>> data="測試">>> print quote(data)%E6%B5%8B%E8%AF%95
urldecode

urllib只提供了unquote()函數。

>>> from urllib import unquote>>> unquote("%E6%B5%8B%E8%AF%95")‘\xe6\xb5\x8b\xe8\xaf\x95‘>>> print unquote("%E6%B5%8B%E8%AF%95")測試>>>
json處理

兩個函數:

函數 描述
json.dumps 將python對象編碼成JSON字串(對象->字串)
json.loads 將已經編碼的json字串解碼為Python對象(字串->對象)
json.dumps

文法:json.dumps(data, sort_keys=True, indent=4,separators=(self.item_separator, self.key_separator))

>>> import json>>> data={"a":"a1","b":"b1"}>>> jsonstr=json.dumps(data)>>> print jsonstr{"a": "a1", "b": "b1"}#輸出格式化>>> print json.dumps(data, sort_keys=True, indent=4,separators=(",",":")){    "a":"a1",    "b":"b1"}>>>

python原始類型向json類型的轉換對照表:

Python JSON
dict object
list,tuple array
str,unicode string
int,long,float number
True true
False false
None null
json.loads

json.loads——返回Python欄位的資料類型

>>> import json>>> jsonstr=‘{"a":"a1","b":"b1"}‘>>> print json.loads(jsonstr){u‘a‘: u‘a1‘, u‘b‘: u‘b1‘}>>> jsonstr=‘{"a":"a1","b":null,"c":false,"d":{"aa":"aa1","bb":"bb1"}}‘>>> print json.loads(jsonstr){u‘a‘: u‘a1‘, u‘c‘: False, u‘b‘: None, u‘d‘: {u‘aa‘: u‘aa1‘, u‘bb‘: u‘bb1‘}}>>> jsonstr=‘[{"a":"a1"},{"b":"b2"}]‘>>> print json.loads(jsonstr)[{u‘a‘: u‘a1‘}, {u‘b‘: u‘b2‘}]

json類型轉換為python類型的對照表

JSON Python
object dict
array list
string unicode
number(int) int,long
number(real) float
true True
false False
null None

結論:print只能輸出python認識的資料類型,python.dumps才可以格式化輸出。

計算字串md5

方法一:使用md5包

import md5def calMd5(signdata,signkey,joiner=""):    signdata=signdata+joiner+""+signkey    m=md5.new(signdata)    sign = m.hexdigest()    return sign

 

方法二:使用hashlib包

import hashlibdef calHashMd5(signdata,signkey,joiner=""):    signdata=signdata+joiner+""+signkey    m=hashlib.md5(signdata)    sign = m.hexdigest()    return sign

 

計算hmacsha1

hmac:密鑰相關的雜湊運算訊息認證碼,hmac運算利用雜湊演算法(可以是MD5或者SHA-1),以一個密鑰和一個訊息為輸入,產生一個訊息摘要作為輸出。

作用:
(1)驗證接受的授權資料和認證資料;
(2)確認接受到的命令請求是已經授權的請求且傳送過程沒有被篡改

import hmacimport base64def hmacSha1WithBase64(signdata,signkey):    sign = hmac.new(signkey, signdata,sha1).digest()    sign = base64.b64encode(sign)    return sign

 

字串拼接
from collections import OrderedDictdef composeStr(data,joiner,withkey=True,key_value_joiner="="):    data = OrderedDict(sorted(data.items(), key=lambda t:t[0]))    if withkey :        signdata = joiner.join([key_value_joiner.join((str(key), str(elem))) for key, elem in data.iteritems()])    else :        signdata= joiner.join([elem for key, elem in data.items()])    return signdata

python常用函數及模組

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.