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

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

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

python内建函数-数字相关

  在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)   #判断该实例的布尔值

 

python内建函数-数字相关

2. int(obj, base=10)

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

python内建函数-数字相关

python内建函数-数字相关

  非数字字符串报错。

 

3. long(obj, base=10)

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

python内建函数-数字相关

  其他部分不演示了。

python内建函数-数字相关

  非数字字符串报错。

 

4. float(obj)

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

python内建函数-数字相关

  其他部分不演示了。

python内建函数-数字相关

  非数字字符串报错。

 

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

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

python内建函数-数字相关

  其他部分不演示了。

python内建函数-数字相关

  非数字字符串报错。

 


内置功能函数:

1. abs(num) 

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

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

  python内建函数-数字相关

  

 

2. coerce(num1, num2) 

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

  转换规则:

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

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

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

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

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

python内建函数-数字相关

  

 

3. divmod(num1, num2) 

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

  

 

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

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

  python内建函数-数字相关

  

 

5. round(flt, ndig=0) 

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

  python内建函数-数字相关

  

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

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

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

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

  python内建函数-数字相关

 


 

 

仅用于整数的函数:

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

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

1.进制转换函数

   oct(num) 

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

python内建函数-数字相关

 

   hex(num) 

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

python内建函数-数字相关

 

2.ASCII 转换函数

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

   chr(num) 

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

  python内建函数-数字相关

   ord(chr) 

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

python内建函数-数字相关

 

   unichr(num) 

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

 python内建函数-数字相关

 


 

随机数的实现:

  随机数的实现需要依靠 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)

 

python内建函数-数字相关

   random.uniform(a, b)  

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

import random
print random.randint(1,10)
print random.randint(1,10)
print random.uniform(1,10)
print random.uniform(0.1,0.9)

python内建函数-数字相关

  

   random.random() 

   类似uniform() 只不过下限恒等于 0.0,上限恒等于 1.0。

  python内建函数-数字相关

   random.choice(seq) 

   随机返回给定序列的一个元素。

import random
a = [1, 2, 3]
print random.choice(a)
print random.choice(a)
print random.choice(a)

python内建函数-数字相关

  


其他数学类型相关模块:

  decimal           十进制浮点运算类  Decimal

  array              高效数值数组(字符,整数,浮点数等等)

  math/cmath    标准C库数学运算函数。常规数学运算在match模块, 复数运算在cmath模块
  operator         数字运算符的函数实现 。比如 operator.sub(m,n) 等价于 m-n 。

  ……

  感兴趣的自行了解

 

相关文章:

  • 2022-12-23
  • 2022-01-24
  • 2022-02-22
  • 2021-07-18
  • 2021-08-09
  • 2021-12-03
  • 2021-09-15
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-05-18
  • 2022-12-23
  • 2021-12-04
  • 2021-06-24
相关资源
相似解决方案