数据是计算机程序加工的对象,数据类型是数据的分类,维基百科上有数据类型Data Type的定义,因编程语言不同而有所差异,在这里我就不粘贴内容了,有兴趣的可以自行查看。
Python的基础数据类型相对来说比较少,主要是数字类型,字符串数据,布尔类型和空类型。
数字类型
需要注意的是,数据和数字不是一个概念,数字是数据的一种,但不是全部。字符,文字,音像等等都属于数据。那么数字类型有哪些?
-
整形(integer, 简写成int)
我们常见的自然数,零,负整数,都是整型, 比如: 5, 20, 120, -33等。在Python中的取值范围取决于计算机的字节长度。 -
长整型(long integer, 简写成long)
在Python中,你可以简单的理解为:整型取值范围之外的整数。
计算机会自动判断你给出的整数是否是长整数,如果未超出取值范围,则会默认为整型,否则计算机会自动在结尾加一个大写的字母L,比如10000000L。 -
浮点型(float)
基本上来说就是指的带小数的数,在科学计数法中,小数点的位置是可变的,又叫浮点型。比如 2.5, 3.0, -5.8等等。但是对于比较大的小数,必须采用科学计数法。比如6.4e10,相当于6.4×1010。 -
复数(complex)
复数平时接触到的不多,由实部的虚部构成,虚部的基本单位是-1的平方根,Python里记作j或J,即a+bj(或J)。
下面看几个交互式环境下的例子,在这之前我们引入一个简单的内建函数type()
函数在计算机中的定义和数学不同, 维基百科的定义是:“a sequence of program instructions that perform a specific task, packaged as a unit”。内建函数,英文为 built-in Function,是 Python 中已经定义好的内部函数,区别于程序员自定的函数。
type()可以显示数据的类型:
>>> 5
5
>>> type(5)
<type 'int'>
>>> 3.5
3.5
>>> type(3.5)
<type 'float'>
>>> 10000000000000000
10000000000000000L
>>> type(10000000000000000)
<type 'long'>
>>> 5+6j
(5+6j)
>>> type(5+6j)
<type 'complex'>
一个特别的例子,大家自行思考
>>> type(3)
<type 'int'>
>>> type(3.0)
<type 'float'>
字符串类型(string, 简称str)
基本上所有的程序都包括字符串类型,它是由引号包裹的任意文本,包括字母和文字等等。
>>> 'I like Python!'
'I like Python!'
>>> type('I like Python!')
<type 'str'>
>>> "5.0"
'5.0'
>>> type("5.0")
<type 'str'>
我们说的是任意文本,但是由于一些特殊字符在python中存在特定意义,所以必须通过转义符,反斜杠"\"
来显示。比如单引号中存在单引号怎么办?
>>> 'I'm a student.'
SyntaxError: invalid syntax
>>> 'I\'m a student.'
"I'm a student."
当然还可以直接用双引号包裹的办法解决,但是引号嵌套多的情况下就只能用转义符号了。
简单来说,转义符就是显示无法直接输入或者有特殊含义的字符。转义符涉及的特殊符号常用的有下面一些,有些暂时用不到,不过还是先记着
转义字符 | 描述 |
---|---|
(在行尾时) | 续行符 |
\ | 反斜杠符号 |
' | 单引号 |
" | 双引号 |
\a | 响铃 |
\b | 退格(Backspace) |
\e | 转义 |
\000 | 空 |
\n | 换行 |
\v | 纵向制表符 |
\t | 横向制表符 |
\r | 回车 |
\f | 换页 |
\oyy | 八进制数yy代表的字符,例如:\o12代表换行 |
\xyy | 十进制数yy代表的字符,例如:\x0a代表换行 |
\other | 其它的字符以普通格式输出 |
老齐在他的《零基础学Python》中有一段很好的例子,把转义符用一下
>>> print "hello.I am qiwsir.\
... My website is 'http://qiwsir.github.io'."
hello.I am qiwsir.My website is 'http://qiwsir.github.io'.
>>> print "you can connect me by qq\\weibo\\gmail"
you can connect me by qq\weibo\gmail
学些编程就是要自己动手用一下,自己编一段看看?
布尔型数据(Boolean)
布尔类型数据只有两个,True代表真,False代表假(请注意大小写),这在判断中的作用举足轻重。
>>> type(True)
<type 'bool'>
>>> type(False)
<type 'bool'>
空数据(None)
空数据不代表零,表示该数据是空的,如同集合中的空集。空数据只有一个值,None。
>>> type(None)
<type 'NoneType'>
练习
- 长整型和浮点型没有上限,是不是真的没有?请自行搜索解决下。
- 写下一些数据并判断类型,然后type()去确认对错。
- 下述代码有何不同,交互式里输入一次,然后采用文本编辑器编辑保存后运行下,然后看看:
>>> "I like soccer."
'I like soccer.'
>>> print "I like soccer."
I like soccer.