Python 基础数据类型
整型变量(Int):
Python 中没有什么长整型短整形,就只有 int 整形 它可以是任意长度的数包含正负,例如+100
、-9237
等等
浮点型变量(Float):
通俗的讲就是小数,当然了并不完全是小数,浮点数确切的说是计算机中存储无法用整形变量确切表示的数!
参看:《计算机组成原理》定点数和浮点数的及其表示!
布尔值(Bool):
即真值,Python 中只有 True
、False
!在Python中所有的对象都有他的Bool属性。函数、类、对象等 都有bool属性。下面是常见的bool
值:
>>> bool() # 空
False
>>> bool([]) # 空列表
False
>>> bool('') # 空字符串
False
>>> bool({}) # 空字典
False
>>> bool(()) # 空元组
False
>>> bool(0) # 0
False
>>> bool(1 == 2) # 逻辑表达式
False
>>> bool(None) # None
Fales
>>> bool('0') # 字符 '0'
Ture
>>> bool([1, 2]) # 非空列表
Ture
>>> def func():
... """"""
...
>>> bool(func) # 函数
True
>>> class Bool():
... """"""
...
>>> bool(Bool) # 类
True
>>> b = Bool() # 实例化对象
>>> bool(b)
True
字符串(Str):
类似于<但是,lksdfm
>,并且字符串是支持切片的
>>> string = 'My name is Monkey'
'My name is Monkey'
>>> str1 = 'Name-''Monkey'
>>> print(str1)
'Name-Monkey # 在Python中默认的会认为 连续的两个字符串是一个 即使他们之间有空格
同其他语言一样,"\"表是转义
或者 可以使用 “r'” 前缀来声明整个字符串均为原始字符
初识容器对象
上面的几种数据类型,都是对象本身,或者就是值,而不是引用。而容器对象不同,通常容器对象本身会包含其他对象,或对其他对象的引用。我们可以把容器视作用于组织各种元素的数据结构。
Python中常见的容器对象有 list 、dict、deque、set、tuple、OrderreDict等等
容器是存储在内存中的数据结构,并且通常会将全部的值都保存在内存中(但也并非全是如此,比如迭代器和生成器对象)。
一般的容器的值是指向其它对象的引用。但是在大多数情况下,当谈到某个容器的值时,我们谈论的仅是值,而不是容器中包含的引用本身。
在讨论容器的可变性时,则更多的关注于引用,例如对嵌套列表的深浅拷贝操作、和对不可变容器对象tuple中包含了对可变对象的引用,那么当被引用的可变对象发生改变时,相应的容器值也将发生改变等。下面介绍几个容器对象。
列表(List):
List(列表) 是 Python 中使用最频繁的几个数据类型。列表可以完成大多数集合类的数据结构实现。与C/C++的数组不同的是,列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。
列表是写在方括号 [] 之间、用逗号分隔开的元素集合。像下面这些
>>> list([1,1,2,3,4]) # 纯整形数字列表
[1, 1, 2, 3, 4]
>>> list(['1',True,None,[]]) # 不同对象组成的列表
['1', True, None, []]
# 甚至可以是函数对象
>>> def func():
... """"""
...
>>> [func, func]
[<function func at 0x102f18ae8>, <function func at 0x102f18ae8>]
和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。
字典(Dict):
字典(dictionary)是Python中另一个非常有用的内置数据类型。列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。字典是一种映射类型,字典用"{ }"标识,它是一个无序的键(key) : 值(value)对集合。键(key)必须使用不可变类型。并且不能是True、False、None这些。在同一个字典中,键(key)必须是唯一的,值不一定唯一。
特别说明 Python3.6 之后,普通的字典也成为了!!!有序字典!!!
>>> d1 = {'name':'monkey', 'gender':'male'}
>>> d2 = {1:func, 2:func}
>>> d1
{'name': 'monkey', 'gender': 'male'}
>>> d2
{1: <function func at 0x102f18ae8>, 2: <function func at 0x102f18ae8>} # key 可以是数字 值可以是函数 甚至是类 或者你希望的任何东西
元组(Tuple):
元组与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。
元组中的元素类型也可以不相同,元组也叫只读列表,或不可变列表。事实上,如果元组中是可变对象的引用,那它还是会变得,虽然元组本身没变,还是原来的引用,但是引用对象变了。
举个简单的例子。你提着两个行李箱,相当于元组中的两个对象,现在约定箱子不能变,你带的东西可以变么? 显然是可以的,箱子里的东西改了就好了,你手中还是那两个箱子。
需要说明的是在Python中两个被“,“ 分割的元素被认为是一个元组
>>> a = 'name', 'monkey' # 被 "," 分割
>>> type(a)
<class 'tuple'>
集合(Set):
集合(set)是一个无序不重复元素的序列,通常用来去重。
基本功能是进行成员关系测试和删除重复元素。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },
因为 { } 是用来创建一个空字典。