python常⽤函数及模块原⽂来源于博客园和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.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
python json字符串转数组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 md5
def calMd5(signdata,signkey,joiner=""):
signdata=signdata+joiner+""+signkey
w(signdata)
sign = m.hexdigest()
return sign
⽅法⼆:使⽤hashlib包
import hashlib
def 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 hmac
import base64
def hmacSha1WithBase64(signdata,signkey):
sign = w(signkey, signdata,sha1).digest()
sign = base64.b64encode(sign)
return sign
字符串拼接
from collections import OrderedDict
def 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常见函数
abs函数
abs函数⽤来求⼀个数的绝对值
abs(-1.24)
max函数
max函数⽤来求多个参数的最⼤值
max(2,3,1,-5)
类型转换函数
常见的类型转换函数,包括int(),float(),bool(),str()等
str(100)
hex函数
hex函数可以将⼀个整数转换为⼗六进制表⽰的字符串
hex(255)
可以改变函数名字
#将a指向abs函数
a = abs
a(-1)
空函数
定义⼀个什么都不做的函数:
def nop():
pass
空函数的作⽤:pass作为占位符,能够先让代码运⾏起来,还可以⽤作其他语句中:if age >= 18:
pass
这⾥pass不能缺少,不然语法错误。
参数检查
数据类型检查可以⽤内置函数isinstance()来实现:
def my_abs(x):
if not isinstance(x, (int,float)):
raise TypeError('bad operand type')
if x >= 0:
return x
else :
return -x
添加完之后如果输⼊错误的参数类型就会抛出你指定的错误
函数多返回值
导⼊包使⽤import语句
import math
def move(x, y, step, angle=0):
nx = x + step * s(angle)
ny = y - step * math.sin(angle)
return nx,ny
x,y = move(100, 100, 60, math.pi / 6)
print(x,y)
其实他的返回值依然是⼀个值来的,不过因为这个返回值是tuple类型⽽已。
# 求⼀元⼆次⽅程解
def quadratic(a, b, c):
if not isinstance(a, (int,float)) and isinstance(b, (int, float)) and isinstance(c, (int, float)):
raise TypeError('bad operand type')
if a == 0:
return'a不能为0'
n = float(b * b - 4 * a *c)
if n < 0:
return'⽅程⽆解'
elif n == 0:
x = int(-b / (2 * a))
return'⽅程的解为:x = %lf' % x
else:
x1 = (-b + math.sqrt(n)) / (2 * a)
x2 = (-b - math.sqrt(n)) / (2 * a)
return'⽅程的解为:x1 = %.1f,x2 = %.1f'%(x1,x2)
a = float(input('请输⼊a:'))
b = float(input('请输⼊b:'))
c = float(input('请输⼊c:'))
print(quadratic(a, b, c))

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。