python数据类型分别为哪几种,python中的数值型数据类型

  python数据类型分别为哪几种,python中的数值型数据类型

  Python数值类型:int、float、complex

  在Python中,int、float和complex是三种非常重要的数值类型,分别代表整数、浮点数和复数。本节将进一步解释与这三种数据类型相关的其他函数。

  1.三种关系

  Python程序中有三种数值类型,分别是整数、浮点数、复数。其中整数型有精确的精度,浮点型一般在c中实现double型,关于浮点型的精度及其在特定机器中的内部特性的信息可以通过使用函数sys.float_info()获得。复型由实部(即实部)和虚部(即虚部)组成,两者都是浮点型。

  Python的所有数值类型(复数除外)都支持表2-1中的运算(按优先级升序排列)(所有数值运算的优先级都高于比较运算)。

  表格数字类型操作

  操作

  结果

  x y

  x和y的和

  直角坐标系

  x和y的区别

  x*y

  x和y的乘积

  x/y

  x和y的商

  x//y

  x除以y的商是向下舍入的整数。

  x%y

  求余数x/y

  加在以-u结尾的法语词源的名词之后构成复数

  x阴性

  x

  x保持不变。

  abs(x)

  x的绝对值或x的大小

  int(x)

  x被转换成整数

  浮动(x)

  x到浮点数

  复杂(re,im)

  把参数转换成复数,re是复数的实部,Im是复数的虚部。Im默认为0。

  共轭的

  复数的共轭

  divmod(x,y)

  (x//y,x%y)

  功率(x,y)

  x的y次方

  x**y

  x的y次方

  2.整数类型的相关函数

  在Python程序中,int类型提供了如下所示的内置函数。

  (1)int.bit_length():返回表示二进制整数所需的位数,不包括符号和前导零。

  (2) int.to _ bytes (length,byteorder,*,signed=false):返回表示整数的字节数组。

  1.length:数组的长度。如果整数转换的字节数组长度超过此长度,则OverflowError将会生成;

  2.byteorder:字节顺序;该值为“大”或“小”。“大”意味着最高有效字节放在字节数组的开头,“小”意味着最高有效字节放在字节数组的结尾。主机系统的字节顺序保存在sys.byteorder中;

  3 .有符号:确定是否用补码来表示整数。如果该值为false和负值,将会生成OverflowError。默认值为False。

  (3) int.from _ bytes (bytes,byteorder,*,signed=false):返回给定字节数组表示的整数。

  1.bytes:字节数组或iterable;

  2.byteorder:同函数to _ bytes();

  3.signed:与函数to_bytes()相同。

  例如,在下面的示例文件Linux commune.py中,演示了使用整数类型的相关函数的过程。

  #使用bit_length()返回表示二进制整数所需的位数,不包括符号和前导零:

  n=-37

  Print(魁梧的蚂蚁)

  打印(n.bit_length())

  #使用函数to_bytes()返回表示整数的字节数组。

  打印((1024)。to_bytes(2,byteorder=big ))

  打印((1024)。to_bytes(10,byteorder=big ))

  打印((-1024)。to_bytes(10,byteorder=big ,signed=True))

  x=1000

  print(x . to _ bytes((x . bit _ length()//8)1,byteorder=little ))

  #使用from_bytes()函数返回由给定字节数组表示的整数。

  print(int . from _ bytes(b \ x00 \ X10 ,byteorder=big ))

  print(int . from _ bytes(b \ x00 \ X10 ,byteorder=little ))

  print(int . from _ bytes(b \ xfc \ x00 ,byteorder=big ,signed=True))

  print(int . from _ bytes(b \ xfc \ x00 ,byteorder=big ,signed=False))

  print(int.from_bytes([255,0,0],byteorder=big ))

  执行后,输出如下:

  -0b100101

  六

  b\x04\x00

  b \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x04 \ x00

  b \ xff \ xff \ xff \ xff \ xff \ xff \ xff \ xff \ xff \ xff \ x00

  b\xe8\x03

  16

  4096

  -1024

  64512

  16711680

  3.浮点型相关函数

  在Python程序中,float类型提供了如下所示的内置函数。

  (1)float.as_integer_ratio():返回一对比例正好等于浮点数原值的整数(2元组),分母为正。Infinite将抛出ValueError错误,NaNs将抛出OverflowError错误。

  (2)float.is_integer():如果浮点数实例是整数值,则返回True,否则返回False。

  以上两种方法(as_integer_ratio()和is_integer())都支持十六进制字符串之间的相互转换。因为Python的浮点数在内部存储为二进制数,所以浮点数和十进制字符串之间的转换通常会有很小的舍入误差。相反,十六进制字符串允许精确表示和指定浮点数。这在调试和数值工作中很有用。

  (3)float.hex():返回浮点数的十六进制字符串表示形式。对于有限的浮点数,这种表示法总是包括一个前导的0x和一个尾随的p和指数。

  (4)float.fromhex(s):这是一个类方法,其作用是返回十六进制字符串S表示的浮点数,S字符串可以有前导空格和尾随空格。读者要注意,float.hex()是实例方法,而float.fromhex()是类方法。

  在计算机系统中,十六进制字符串的形式是:

  [sign] [0x]整数[ . 分数] [p 指数]

  可选指数可以是“”或“整数”,“符号”和“分数”是十六进制数的字符串,“-”是带有可选前导符号的十进制整数。不区分大小写,整数或十进制至少有一个十六进制数。该语法类似于C99标准的6.4.4.2部分中规定的语法,也类似于从Java 1.5开始使用的语法。float.hex()的输出可以作为C或Java代码中十六进制浮点数的文字值,C的Double.toHexString或Java的%a格式的十六进制字符串可以被float.fromhex()接受。这里应该注意,指数是用十进制数而不是十六进制数表示的,它给出了用于乘以系数的2的幂。例如,十六进制字符串0x3.a7p10表示浮点数(3 ^ 10。/16 7./162) * 2.010,或3740.0。

  例如,在下面的示例文件Linuxidc.com.py中,演示了使用浮点相关函数的过程。

  打印((-2.0)。is_integer())

  打印((3.2)。is_integer())

  print(float.fromhex(0x3.a7p10 ))

  print(float.fromhex(0x3.a7p10 ))

  执行后,输出如下:

  真实的

  错误的

  3740.0

  3740.0

  4迭代器类型

  Python语言支持容器中内容的迭代,并允许用户自定义的类支持迭代。要使容器对象支持迭代,需要定义以下方法:

  集装箱。__iter__():返回一个迭代器对象。这个对象必须支持迭代器协议,如下所述。如果容器支持不同类型的迭代,可以提供其他方法来专门请求这些迭代类型的迭代器。(支持多种迭代形式的对象的一个例子是支持广度和深度优先遍历的树结构)。

  Python迭代器对象本身需要支持以下两种方法,它们共同构成迭代器协议。

  迭代器。_ _ iterator _ _():返回迭代器对象本身,这是允许在for和in语句中使用容器和迭代器所必需的。

  迭代器。__next__():返回容器中的下一个元素。如果没有其他元素,将引发StopIteration异常。

  例如,在下面的示例文件diq.py中,演示了使用类实现__iter__()和next()函数的过程。

  类别纤维(对象):

  def __init__(self):

  Self.a,self.b=0,1 #初始化两个计数器A,b。

  def __iter__(self):

  return # instance本身是一个迭代对象,所以它返回自身。

  def __next__(自己):

  Self.a,self.b=self.b,self.a self.b #计算下一个值

  如果。A10: #退出循环的条件

  raise stop iteration();

  Return.a #返回下一个值

  if __name__==__main__ :

  对于Fib()中的n:

  打印(n)

  执行后,输出如下:

  一个

  一个

  2

  三

  五

  八

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: