python支持的数据类型
变量
定义:变量是计算机内存中的一块区域,变量可以存储规定范围内的值,而且值可以改变
命名规则:由字母、数字、下划线组成,并且不能由纯数字组成或以数字开头
python中地址变量与c语言刚好相反,一条数据可以包含多个标签:
In [1]: a=1
In [2]: b=1
In [3]: id(a) #查看变量a在内存中的地址
Out[3]: 8872280
In [4]: id(b) #查看变量b在内存中的地址
Out[4]: 8872280
常量
所谓常量就是不能变的变量,比如常用的数学常数π就是一个常量。在Python中,通常用全部大写的变量名表示常量:
PI = 3.14159265359
但事实上 PI 仍然是一个变量,Python根本没有任何机制保证PI 不会被改变,所以,用全部大写的变量名表示常量只是一个习惯上的用法,如果你一定要改变变量PI的值,也没人能拦住你。
整形
整形的表示范围-2147483648到2147483647,超过这个范围就会变为长整形
type()可以查看数据类型
In [5]: num1=123
In [6]: type(num1)
Out[6]: int
长整形
In [9]: num2=999999999999999999999999999
In [10]: type(num2)
Out[10]: long
强制定义为长整形的方法:
In [11]: num3=99L
In [12]: type(num3)
Out[12]: long
浮点型
In [14]: f1=11.0
In [15]: type(f1)
Out[15]: float
浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的
1.2e10代表的数值为1.2的10次方
In [16]: f2=1.2e10
In [17]: type(f2)
Out[17]: float
12e10代表的数值为12的10次方
In [18]: f3=12e10
In [19]: type(f3)
Out[19]: float
整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(除法难道也是精确的?是的!),而浮点数运算则可能会有四舍五入的误差
字符串
字符串是以''或""括起来的任意文本,比如 'abc' , "xyz" 等等。请注意,''或""本身只是一种表示方式,不是字符串的一部分,因此,字符串 'abc' 只有 a , b , c 这3个字符。如果 ' 本身也是一个字符,那就可以用""括起来,比如 "I'm OK" 包含的字符是 I , ' , m ,空格, O , K 这6个字符。
如果字符串内部既包含 ' 又包含 " 怎么办?可以用转义字符 \ 来标识,比如:
'I\'m \"OK\"!'
表示的字符串内容是:
I'm "OK"!
转义字符 \ 可以转义很多字符,比如 \n 表示换行, \t 表示制表符,字符 \ 本身也要转义,所以 \\ 表示的字符就是 \ ,可以在Python的交互式命令行用print打印字符串看看:
In [33]: print 'I\'m ok.'
I'm ok.
In [34]: print 'I\'m learning\nPython.'
I'm learning
Python.
In [35]: print '\\\n\\'
\
\
如果字符串里面有很多字符都需要转义,就需要加很多 \ ,为了简化,Python还允许用 r'' 表示 '' 内部的字符串默认不转义,可以自己试试:
In [36]: print '\\\t\\'
\ \
In [37]: print r'\\\t\\'
\\\t\\
如果字符串内部有很多换行,用 \n 写在一行里不好阅读,为了简化,Python允许用 '''...''' 的格式表示多行内容,可以自己试试:
In [38]: print '''line1
....: line2
....: line3'''
line1
line2
line3
上面是在交互式命令行内输入,如果写成程序,就是:
print '''line1
line2
line3'''
多行字符串 '''...''' 还可以在前面加上 r 使用,请自行测试。
波尔类型
只包含True|False两种,注意开头字母大写,不识别小写
In [20]: a=True
In [21]: type(a)
Out[21]: bool
In [22]: b=False
In [23]: type(b)
Out[23]: bool
如果括号里面有数值,返回True,否则False,0也返回False
In [24]: a=123
In [25]: bool(a)
Out[25]: True
In [26]: b=""
In [27]: bool(b)
Out[27]: False
In [28]: bool(0)
Out[28]: False
In [29]: bool(-1)
Out[29]: True
In [30]: bool(1)
Out[30]: True
复数类型
python对复数提供内嵌支持,例如3.14j,8.32e-36j
In [31]: a=8.32e-36j
In [32]: type(a)
Out[32]: complex
空值
空值是python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值
此外,python还提供了列表、字典等多种数据类型,还允许创建自定义数据类型。