数据类型
2.1 整数 int
python可以处理任意大小的整数,当然也包括负数,在程序中的表示方法和数学上的写法一样,例如 1, 100, 200,-100等等
计算机由于使用二进制,所以,有时候用十六进制表示整数比较方便,十六进制用0x前缀和0-9,a-f表示
例如0xff00,0xa5b4,等等
2.2 浮点数
浮点数也会是小数,之所以称为浮点数,是因为按照科学计数法表示时,一个浮点数的小数点位置是可变的,比如1.23x10九次方和12.3x10的8次方是完全相等的,浮点数可以用数学写法,如1.23,3.14,-9.01,等等但是对于很大或者很小的浮点数就必须用科学计数法表示把10用e代替1.23x10的九次方就是1.23e9,0.000012可以写成1.2e-5,等等
字符串
字符串是以单引号或者双引号括起来的任意文本,如果字符串内部包含单引号或者双引号。可以用户\来转义比如
>>> print('cao ' jiao ""yue"')
File"<stdin>", line 1
print('cao ' jiao " "yue"')
^
SyntaxError: invalid syntax
>>> print('cao \' jiao \"\"yue\"')
cao ' jiao " "yue"
>>>
如果字符串内部有很多换行,用\n写就不好读了。为了简化python允许用’’’……..’’’的格式表示多行
>>> print('''cao
... jiao
... yue''')
cao
jiao
yue
>>>
写到文件里就是
print('''cao
jiao
yue''')
2.3 布尔值
布尔值和布尔代数的表示完全一致,一个布尔值只有True、False两种值,要么是True,要么是False,在python中可以直接用True和False表示布尔值,也可以通过布尔运算计算出来
>>> True
True
>>> False
False
>>> 3 > 2
True
>>> 3 > 5
False
>>>
条件成立时布尔值就是True
条件不成立时布尔值就是False
布尔值还可以用and、or、not运算。
2.3.1 and
and是与的意思,只有当条件都为True的时候结果才为True
>>> 3 > 5 and 1 > 2
False
>>> 3 > 2 and 1 > 2
False
>>> 3 > 2 and 4 > 2
True
>>>
2.3.2 or
or是或的意思,其中只要有一个运算结果为True那么结果就为True
>>> 3 > 5 or 1 > 2
False
>>> 10 > 5 or 1 > 2
True
>>>
2.3.3 not
not是非的意思,True变False,False变True
>>> not 1
False
>>> not 0
True
>>> not False
True
>>> not True
False
>>>
0表示False,非零表示True
2.4 空值
空值是python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。此外python还提供了列表、字典、等多种数据类型,还允许创建自定义数据类型
2.5 变量
一个会变的量。变量不仅可以是数字还可以是任意数据类型
>>> a = 'abc'
>>> b = a
>>> a = 'caojiaoyue'
>>> b
'abc'
>>>
2.6 列表
python内置的一种数据类型是列表:list是一种有序的集合,可以随时添加和删除其中的元素。
比如,列出班里所以学生的名字,就可以用一个list表示
>>> cao = ['cao','jiao','yue',100]
>>> cao
['cao', 'jiao', 'yue', 100]
>>>
变量cao就是一个列表
可以用len函数来查看他的元素的个数
>>> cao = ['cao','jiao','yue',100]
>>> cao
['cao', 'jiao', 'yue', 100]
>>> len(cao)
4
>>>
用索引来打印列表里的每个元素
>>> print(cao[0])
cao
>>> print(cao[1])
jiao
>>> print(cao[0],cao[1])
('cao', 'jiao')
>>>
2.6.1 append
在列表的最后追加元素
>>> cao.append('cao')
>>> cao
['cao', 'jiao', 'yue', 100, 'cao']
>>> cao.append('liu')
>>> cao
['cao', 'jiao', 'yue', 100, 'cao', 'liu']
>>>
2.6.2 insert
在列表的指定位置插入元素
>>> cao.insert(0,'liu')
>>> cao
['liu', 'cao', 'liu', 'jiao', 'yue', 100, 'cao','liu']
>>> cao.insert(0,123)
>>> cao
[123, 'liu', 'cao', 'liu', 'jiao', 'yue', 100,'cao', 'liu']
>>>
2.6.3 pop
删除一个列表里的某个元素
>>> cao
[123, 'liu', 'cao', 'liu', 'jiao', 'yue', 100,'cao', 'liu']
>>> cao.pop()
'liu'
>>> cao.pop(1)
'liu'
>>> cao
[123, 'cao', 'liu', 'jiao', 'yue', 100, 'cao']
>>>
列表里的元素也可以是另一列表
>>> cao[2] = ['liuwen', 'hucong']
>>> cao
[123, 'cao', ['liuwen', 'hucong'], 'jiao', 'yue',100, 'cao']
>>> cao[2][0]
'liuwen'
>>> cao[2][1]
'hucong'
>>>
因此cao就是一个二维数组
2.7 元组
另一种有序的列表叫元组,元组和列表非常相似,但是元组一旦初始化就不能修改,比如同样是列出同学的名字:
>>> yue = ('cao','jiao','yue')
>>> yue
('cao', 'jiao', 'yue')
>>>
但是yue这个元组是不能改变了,它没有append和insert这样的方法。其他获取元素的方法还是和列表一样。你可以正常的使用cao[0],cao[-1],但是不能赋值其他的元素
正是应为不可以变化所以数据更安全。
tuple的陷阱:当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来,比如
>>> t = (1,2,3)
>>> t
(1, 2, 3)
>>> len(t)
3
>>>
如果要定义一个空的在元组,可以写成;
>>> t = ()
>>> t
()
>>>
但是,要定义一个只有1个元素的元组,如果你这样定义:
>>> t = (1)
>>> t
1
>>>
别人怎么知道1是表示是1这个值还是元素个数呀,为了避免这样的分歧,通常会加一个逗号
>>> t = (1,)
>>> t
(1,)
>>>
一个可变化的元组
>>> t = ('a', 'b', ['a', 'b'])
>>> t
('a', 'b', ['a', 'b'])
>>> t[2][0]
'a'
>>> t[2][0] = 'i'
>>> t
('a', 'b', ['i', 'b'])
>>>
表面上看元组的元素确实变了。但是变化的其实不元组的元素,而是列表的元素
小结
列表和元组是python内置的有序集合,一个可以变化,一个不可以变化,根据需要来选择