Python 数据类型

 Python 提供了一些内置的数据类型,它们由系统预定义好,在程序中可以直接使用。 

 Python 数据类型包括数值型、字符串型、布尔型等基本数据类型,这是一般程序设计语言都有的数据类型。 

 为了使程序能描述现实世界中各种复杂数据,Python  还有列表、元组、字典和集合等复合数据类型,这是 Python 中具有特色的数据类型

1.数值类型

 Python 支持3 种不同的数值数据类型:

 整型(int)

 浮点型(float)  复数型(complex)

一、整型数据

 在Python 3.x 中,整型数据的值在计算机内的表 示不是固定长度的,只要内存许可,整数可以扩展到任意长度,整数的取值范围几乎包括了全部整数(无限大),这给大数据的计算带来便利。

 Python 的整型常量有以下4 种表示形式。

 (1)十进制整数

 如120、0、−374 等。

 (2)二进制整数

 它以0b 或0B(数字0 加字母b 或B)开头,后接数字 0,1 的整数。

 例: 

 >>> 0b1111 

 15 

 0b1111 表示一个二进制整数,其值等于十进制数15。

 (3)八进制整数 

 它是以0o 或0O(数字0 加小写字母o 或大写字母 O)开头,后接数字0~7的整数。

 例: 

 >>> 0o127

 87 

 0o127 表示一个八进制整数,其值等于十进制数 87。

 (4)十六进制整数 

 它是以0x 或0X 开头,后接0~9 和A~F(或用小 写字母)字符的整数。

 例:

 >>> 0xabc 

 2748 

 0xabc 表示一个十六进制整数,其值等于十进制数2748。

二、浮点型数据

 浮点型数据表示一个实数,有以下两种表示形式。

 (1)十进制小数形式 

 它由数字和小数点组成,如3.23、34.0、0.0 等。

 浮点型数据允许小数点后面没有任何数字,表示小数部分为0,如34.表示34.0。

 (2)指数形式 

 指数形式即用科学计数法表示的浮点数,用字母e(或E)表示以10 为底的指数,e 之前为数字部分,之后为指数部分,且两部分必须同时出现,指数必须为整数。

 例: 

 >>> 45e-5 

 0.00045 

 >>> 45e-6 

 4.5e-05 

 >>> 9.34e2 

 934.0 

 45e-5、45e-6、9.34e2 是合法的浮点型常量,分别代表 45×10−5 、45×10−6 、9.34×102。

 字母e(或E)前必有数, e(或E)后必为整数。 

 例:e4、3.4e4.5、34e 等是非法的浮点型常量。

 对于浮点数,Python 3.x 默认提供17 位有效数字的精度,相当于C 语言中的双精度浮点数。

 例: 

 >>> 1234567890123456.0 

 1234567890123456.0 

 >>> 1234567890123456789.0 

 1.2345678901234568e+18 

 >>> 1234567890123456789.0+1 

 1.2345678901234568e+18 

 >>> 1234567890123456789.0+1-1234567890123456789.0 

 0.0 

>>> 1234567890123456789.0-1234567890123456789.0+1 

 1.0

 在Python 中,为什么1234567890123456789.0+1- 1234567890123456789.0 的结果为0.0,而 1234567890123456789.0-1234567890123456789.0+1 的 结果为1.0,这就需要了解Python 浮点数的表示方法。 

 数学上1234567890123456789.0+1 等于 1234567890123456790.0,但由于浮点数受17 位有效 数字的限制,Python 中1234567890123456789.0+1 的结果等于1.2345678901234568e+18,其中加1的结果 被忽略了, 1234567890123456789.0+1 再减去 1234567890123456789.0 的结果为0 。

 1234567890123456789.0- 1234567890123456789.0+1 先执行的是减法运算,得到0,然后再加上1,结果为1.0,所以计算机中的计算与数学上的计算是不同的,其原因是计算 机中的计算必须依赖于计算机的计算能力。 

 在进行问题求解时必须注意这种差别,这就是计算思维的思想。

 例: 

 >>> 1.001*10 

 10.009999999999998 

 为什么Python 中1.001*10 结果是 10.009999999999998,而不是10.01,其原因在于十进制小数转换为二进制小数时可能出现无限小数问题,而Python 在存储小数时使用的是双精度 浮点数,这种数只可以保存一定位数的有效数字, 所以当遇到无限小数时就会出现损失精度的问题。

三、复数型数据

 在科学计算问题中常会遇到复数运算问题。 

 例:数学中求方程的复根、电工学中交流电路的 计算、自动控制系统中传递函数的计算等都要用 到复数运算。 

 Python 提供了复数类型,这使得有关复数运算问 题变得方便容易。

 复数类型数据的形式为:a+bJ 或 a+bj 

 其中,a 是复数的实部,b 是复数的虚部,J 表示 −1 的平方根(虚数单位)。 

 虚数单位既可以用大写字母J 也可以写成小写字母 j,注意不是数学上的i。 

 例: 

 >>> x=12+34J 

 >>> print(x) 

 (12+34j)

 可以通过x.real 和x.imag 来分别获取复数x 的实部和虚部,结果都是浮点型。

 例:接着上面的语句,继续执行以下语句: 

 >>> x.real 

 12.0 

 >>> x.imag 

 34.0

2.字符串类型

(1)Python 标准字符串

 在 Python 中定义一个标准字符串可以使用单引号、 双引号和三引号(三个单引号或三个双引号), 这使得Python 输入文本更方便。 

 例如,当字符串的内容中包含双引号时,就可以用单引号定义,反之亦然。

 例:

 >>> s='uestc' 

 >>> print(s) 

 uestc 

 >>> print(s[0]) #输出字符串的第1 个字符 

 u 

 >>> print(s[2:4]) #输出字符串的第3~4 个字符 

 st 

 >>> t="I am 'Python'" 

 >>> print(t)

 I am 'Python'

 用单引号或双引号括起来的字符串必须在一行内表示,这是最常见的表示字符串的方法,而用三引号括起来的字符串可以是多行的(文本块)。

 >>> s="""I'm "Python"!""" 

 >>> print(s) 

 I'm "Python"! 

 >>> s=""" 

 1.AAAA 

 2.BBBB 

 3.CCCC 

 请选择:""" 

 >>> print(s) 

 1.AAAA 

 2.BBBB 

 3.CCCC 

 请选择:

 Python 字符串中的字符不能被改变,向一个位置 赋值会导致错误。 

 例: 

 >>> s="ABCDEFG" 

 >>> s[1]="8" #试图改变第2 个字符导致出错

 在Python 中,修改字符串只能重新赋值,每修改 一次字符串就生成一个新的字符串对象,这看起 来好像会造成处理效率下降。 

 其实,Python 系统会自动对不再使用的字符串进行垃圾回收,所以,新的对象重用了前面已有字 符串的空间。

你可能感兴趣的:(python)