设为首页 加入收藏

TOP

python内建函数-数字相关(一)
2017-09-30 15:21:55 】 浏览:4061
Tags:python 函数 数字 相关

  本篇对于数字有关的内置函数进行总结。

  数字包括 int()long()float()complex() ,这些函数都能够用来进行数值类型的转换。同时这些函数也接受字符串参数,返回字符串所表示的数值。另外int()long()在转换字符串的时候,还能接受一个进制参数,但如果是数字之间的类型转换,该参数不可用。

  后来python又引入了新的函数 bool() ,用来将整数值1和0转换成标准布尔值 True 和 False。

  在2.7中,能够将几乎所有的数据类型都转换为布尔值表示。其布尔值的的转换关系参照我在布尔值篇的说明。

  python在2.2中对类型和类进行了整合,以上所有的内建函数都转变成工厂函数。所谓的工厂函数就是值这些函数都是类对象,而调用它们的时候,都得到一个类的实例。

  但是在使用上和函数也没什么区别。

1. bool(obj) 

  返回obj对象的布尔值,也就是 obj.__nonzero__()方法的返回值。没有__nonzero__()方法的对象的默认值是 True。

class Text():
    " 自定义布尔值测试类 "
    def __init__(self,value):
        self.value = value

    def __nonzero__(self):
        return False

a = Text(123)   #实例化
print bool(a)   #判断该实例的布尔值

 

2. int(obj, base=10)

  返回一个字符串或数值对象的整数表示。但参数为字符串的时候,可以使用base指定进制,默认是10进制,当obj为数字的时候,即数字间进行类型转换的时候,该参数不可用。

  非数字字符串报错。

 

3. long(obj, base=10)

  返回一个字符或数据对象的长整数表示。其他同上。

  其他部分不演示了。

  非数字字符串报错。

 

4. float(obj)

  返回一个字符串或数据对象的浮点数表示。没有进制参数可选。

  其他部分不演示了。

  非数字字符串报错。

 

5. complex(str)complex(real[, imag=0]) 

   返回一个字符串的复数表示,或者根据给定的实数(real)及一个可选的虚数部分(imag)生成一个复数对象。

  其他部分不演示了。

  非数字字符串报错。

 


内置功能函数:

1. abs(num) 

  num表示参数必须是个数字,下面不再重复说明。

  abs()返回给定参数的绝对值。如果参数是一个复数, 那么就返回 math.sqrt(num.real2  + num.imag2)。

  

  

 

2. coerce(num1, num2) 

   将num1和num2转换为同一类型,然后以一个  元组的形式返回。

  转换规则:

  1.如果有一个操作数是复数, 另一个操作数被转换为复数。

  2.否则,如果有一个操作数是浮点数, 另一个操作数被转换为浮点数。

  3.否则, 如果有一个操作数是长整数,则另一个操作数被转换为长整数。

  4.否则,两者必然都是普通整数,无须类型转换。

  优先级:复数 > 浮点数 > 长整形 > 整数

  

 

3. divmod(num1, num2) 

  除法-取余运算的结合。返回一个元组(num1 / num2, num1 %  num2)。对浮点数和复数的商进行下舍入(复数仅取实数部分的商)

  

 

4. pow(num1, num2, mod=1) 

  取 num1 的 num2 次方,如果提供 mod 参数,则计算结果再对 mod 进行取余运算 。

  

  

 

5. round(flt, ndig=0) 

  接受一个浮点数 flt 并对其四舍五入,保存 ndig 位小数。 若不提供 ndig 参数,则默认小数点后0位。(整数也可以,不过并没有什么实际意义)

  

  

注意 int(), round(), math.floor(),这几个函数的区别:

  1.函数 int()直接截去小数部分。(返回值为整数)

  2.函数 floor()得到接近原数但小于原数的整数。(返回值为浮点数)

  3.函数 round()得到接近原数的整数。(返回值为浮点数)

  

 


 

 

仅用于整数的函数:

  除了适应于所有数值类型的内建函数之外,Python 还提供一些仅适用于整数的内建函数(标准整数和长整数)。

  这些函数分为两类,一类用于进制转换,另一类用于 ASCII 转换。

1.进制转换函数

   oct(num) 

   将一个整数(任何规模的)转换成一个八进制字符串。其结果是一个有效的Python表达式。

 

   hex(num) 

  将一个整数(任何规模的)转换成一个小写十六进制字符串,前缀与'0x'。

 

2.ASCII 转换函数

  Python 也提供了 ASCII(美国标准信息交换码)码与其序列值之间的转换函数。每个字符对应一个唯一的整数(0-255)。对所有使用 ASCII 表的计算机来说,这个数值是不变的。这保证了不同系统之间程序行为的一致性。

   chr(num) 

  函数接受一个单字节整数值,返回一个字符串,其值为对应的字符。

  

   ord(chr) 

  接受一个字符,返回其对应的整数值。是上面方法的逆运算。

 

   unichr(num) 

   接受Unicode码值,返回 其对应的Unicode字符。所接受的码值范围依赖于你的Python是构建于UCS‐2还是UCS‐4。

 

 


 

随机数的实现:

  随机数的实现需要依靠 random 模块。

  该模块包含多个伪随机数发生器,它们均以当前的时间戳为随机数种子。这样只要载入这个模块就能随时开始工作。下面列出了该模块中常用的函数:

   random.randrange()   

  它接受和 range() 函数一样的参数, 随机返回 range([start,]stop[,step]) 结果的一项。

import random
print random.randrange(10)
print random.randrange(10)
print random.randrange(1, 10, 2)
print random.randrange(1, 10, 2)

 

   random.uniform(a, b)  

  几乎和 randint(a, b)一样,不过它返回的是二者之间的一个浮点数(不包括范围上限)。

import random
print random.randint(1,10)
print random.randint(1,10)
print random.unif
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇[python]python try异常处理机制 下一篇Python变量与常量

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目