0%

Python数据类型

一、整数

Python可以处理任意大小的整数,当然包括负整数,在Python程序中,整数的表示方法和数学上的写法一模一样,例如:1,100,-8080,0,等等。

二、浮点数

浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,1.23x10^9和12.3x10^8是相等的。浮点数可以用数学写法,如1.23,3.14,-9.01等等。但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x10^9就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。

整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的,而浮点数运算则可能会有四舍五入的误差。浮点数运算存在不确定尾数,运算的结果不一定精确。因为计算机内存再大,也无法精确表示出无限循环小数,比如 0.1 换成二进制表示就是无限循环小数。

Python的整数运算结果仍然是整数,浮点数运算结果仍然是浮点数,但是整数和浮点数混合运算的结果就变成浮点数了

1
2
3
4
5
print(1 + 2)    # ==> 整数 3 
print(1.0 + 2.0) # ==> 浮点数 3.0
print(0.1 + 0.2 == 0.3) # ==> False
print(round(0.1 + 0.2, 1) == 0.3) # ==> True
print(1 + 2.0) # ==> 浮点数 3.0

Python整数除法除不尽的结果是浮点类型,同时提供了整数除“//”实现余数直接丢掉。Python提供了一个求余的运算%可以计算余数:

1
2
3
4
5
6
print(11 // 3)    # ==> 3 
print(11 / 3) # ==> 3.6666666666666665
print(11 % 3) # ==> 2
print(11.0 / 3) # ==> 3.0
print(11 ** 2) # ==> 121
print(10 ** 0.5) # ==> 3.1622776601683795

三、字符串

字符串是以'或"括起来的任意文本,比如'abc',"xyz"等等。请注意,'或"本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有a,b,c这3个字符。(注意:Python不区分单引号和双引号

四、布尔值

布尔值和布尔代数的表示完全一致,一个布尔值只有True、False两种值,要么是True,要么是False,在Python中,可以直接用True、False表示布尔值,也可以通过布尔运算计算出来。

  • and运算(与运算),只有所有都为True,and运算结果才是True。
  • or运算(或运算),只要其中有一个为True,or运算结果就是True。
  • not运算(非运算),把True变成False,False变成 True。

在Python中,布尔类型还可以与其他数据类型做and、or和not运算:

1
2
3
a = True 
print (a and 'a=T' or 'a=F') # a=T
print(True and {'tom'}) #{'tom'}

布尔类型和其他类型运算的结果可能不是布尔类型,因为Python把0、空字符串’’和None看成False,其他数值和非空字符串都看成True,所以True and 'a=T'计算结果是'a=T',继续计算'a=T' or 'a=F'计算结果还是'a=T'。

要解释上述结果,又涉及到and和or运算的一条重要法则:短路计算。

  1. 在计算a and b时,如果a是False,则根据与运算法则,整个结果必定为 False,因此返回a;如果a是True,则整个计算结果必定取决与b,因此返回b。
  2. 在计算a or b时,如果a是True,则根据或运算法则,整个计算结果必定为 True,因此返回a;如果a是False,则整个计算结果必定取决于b,因此返回 b。

Python解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果。需要注意的是,字典和集合类型不能进行布尔测试,但是上述代码第三行在进行布尔运算时,会产生误导结果。

五、空值

空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

此外,Python还提供了复数类型、列表、字典等多种数据类型,还允许创建自定义数据类型。

天生我材必有用,千金散尽还复来~
  • 本文作者: XTLei
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
-------------本文结束感谢您的阅读-------------