Python函数type、cmp、str、repr、abs、coerce、pow、divmod、round

By | 2017年2月20日
目录
[隐藏]

type()

在Python2.2以前,type是内建函数,在这之后,type 是工厂函数,type()用法如下:

type(object)

type接受一个对象参数,并返回它的类型。它的返回值是一个类型对象。

>> type(4)
# int type
<type ‘int’>
>>>
>>> type(‘Hello World!’)
# string type
<type ‘string’>
>>>
>>> type(type(4))
# type type
<type ‘type’>

cmp()

内建函数cmp用于比较两个对象obj1和obj2,如果obj1小于obj2,则返回一个负整数,如果大于,返回一个正整数,如果等于,返回0.

>> a, b = -4, 12
>>> cmp(a,b)
-1
>>> cmp(b,a)
1
>>> b = -4
>>> cmp(a,b)
0
>>>
>>> a, b = ‘abc’, ‘xyz’
>>> cmp(a,b)
-23
>>> cmp(b,a)
23
>>> b = ‘abc’
>>> cmp(a,b)
0

str()

内建函数str()和repr()或者反引号运算符(“)可以以字符串的方式获取对象的内容、类型、数值等属性,str()得到的字符串可读性好,repr得到的字符串通常用来重新获取该对象。>>>

str(4.53-2j)
‘(4.53-2j)’
>>>
>>> str(1)
‘1’
>>>
>>> str(2e10)
‘20000000000.0’
>>>
>>> str([0, 5, 9, 9])
‘[0, 5, 9, 9]’
>>>
>>> repr([0, 5, 9, 9])
‘[0, 5, 9, 9]’
>>>
>>> `[0, 5, 9, 9]`
‘[0, 5, 9, 9]’

尽管 str(),repr()和“运算在特性和功能方面都非常相似, 事实上 repr() 和 “ 做的是完全一样的事情,它们返回的是一个对象的“官方”字符串表示, 也就是说绝大多数情况下可以通过求值运算(使用 eval()内建函数)重新得到该对象,但 str()则有所不同。str() 致力于生成一个对象的可读性好的字符串表示,它的返回结果通常无法用于 eval()求值, 但很适合用于 print 语句输出。需要再次提醒一下的是, 并不是所有 repr()返回的字符串都能够用eval()内建函数得到原来的对象。

abs(num)

返回指定参数的绝对值。

>> abs(-1)
1
>>> abs(10.)
10.0
>>> abs(1.2-2.1j)
2.41867732449
>>> abs(0.23 – 0.78)
0.55

coerce()

如果有一个操作数是复数, 另一个操作数被转换为复数。
否则,如果有一个操作数是浮点数, 另一个操作数被转换为浮点数。
否则, 如果有一个操作数是长整数,则另一个操作数被转换为长整数;
否则,两者必然都是普通整数,无须类型转换

>> coerce(1, 2)
(1, 2)
>>>
>>> coerce(1.3, 134L)
(1.3, 134.0)
>>>
>>> coerce(1, 134L)
(1L, 134L)
>>>
>>> coerce(1j, 134L)
(1j, (134+0j))
>>>
>>> coerce(1.23-41j, 134
((1.23-41j), (134+0j))

divmod()

把除法和商结合起来,返回一个包含商和余数的元组。

>> divmod(10,3)
(3, 1)
>>> divmod(3,10)(0, 3)
>>> divmod(10,2.5)
(4.0, 0.0)
>>> divmod(2.5,10)
(0.0, 2.5)
>>> divmod(2+1j, 0.5-1j)
(0j, (2+1j))

pow(x,y)

pow可以进行指数计算,如果有三个参数,pow(x,y,z)表示,x的y次方,除以z,常用于密码计算中,比pow(x,y)%z的效率高。

>> pow(2,5)
32
>>>
>>> pow(5,2)
25
>>> pow(3.141592,2)
9.86960029446
>>>
>>> pow(1+1j, 3)
(-2+2j)

round()

对浮点数进行四舍五入计算。有一个可选参数,表示小数位数参数。

>>
3.0
>>>
3.0
>>>
3.0
>>>
3.5
>>>
round(3)
round(3.45)
round(3.4999999)
round(3.4999999, 1)
import math>>> for eachNum in range(10):
… print round(math.pi, eachNum)

3.0
3.1
3.14
3.142
3.1416
3.14159
3.141593
3.1415927
3.14159265
3.141592654
3.1415926536
>>> round(-3.5)
-4.0
>>> round(-3.4)
-3.0
>>> round(-3.49)
-3.0
>>> round(-3.49, 1)
-3.5

 

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注