Python入门
- 数据类型
- 1、可变数据(list、dict、set)
- 1.1 list
- 1.2 set
- 1.3 dict
- 2、不可变数据(number、string、tuple)
- 2.1 number
- 2.2 string
- 2.3 tuple
- 3、序列
- 3.1 有序序列
- 3.2 无序序列
数据类型
1、可变数据(list、dict、set)
允许变量的值发生变化,如果对变量进行append、+=等这种操作后,只是改变了变量的值,而不会新建一个对象,变量引用的对象的地址也不会变化。不过对于相同的值的不同对象,在内存中则会存在不同的对象,即每个对象都有自己的地址,相当于内存中对于相同值的对象保存了多份,这里不存在引用计数,是实实在在的对象。
1.1 list
列表(list)有序和可更改的集合,允许重复的成员。在Python
中,元组是用中括号编写的。
list_test = ["apple", "banana", "cherry"]
print(list_test)
['apple', 'banana', 'cherry']
# list_test(列表)的类型
type(list_test)
<class 'list'>
# list_test(列表)可使用的方法【“append” ~ “sort”】
dir(list_test)
['__add__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
1.2 set
集合(set)是无序和无索引的集合,没有重复的成员。在Python
中,元组是用大括号编写的。
set_test = {"apple", "banana", "cherry"}
print(set_test)
{'banana', 'cherry', 'apple'}
# set_test(集合)的类型
type(set_test)
<class 'set'>
# set_test(集合)可使用的方法【“add” ~ “update”】
dir(set_test)
['__and__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__iand__', '__init__', '__init_subclass__', '__ior__', '__isub__', '__iter__', '__ixor__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__rand__', '__reduce__', '__reduce_ex__', '__repr__', '__ror__', '__rsub__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__xor__', 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update']
1.3 dict
字典(dict)是无序,可变和有索引的集合,没有重复的成员。在Python
中,元组是用大括号编写的,并使用键值对的方式存放元素。
dict_test = {"brand": "Porsche", "model": "911", "year": 1963}
print(dict_test)
{'brand': 'Porsche', 'model': '911', 'year': 1963}
# dict_test(字典)的类型
type(dict_test)
<class 'dict'>
# dict_test(字典)可使用的方法【“clear” ~ “values”】
dir(dict_test)
['__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__ior__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__ror__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
2、不可变数据(number、string、tuple)
不允许变量的值发生变化。如果改变了变量的值,相当于是新建了一个对象。而对于相同的值的对象、在内存中则只有一个对象,内部会有一个引用计数来记录有多少个变量引用这个对象。
2.1 number
number其实就是代表数字 / 数值。
python中只存在整型(int)和浮点型(float)两种number数据类型,其中的浮点型不区分单双精度。
2.2 string
单引号 ’ ’ 主要用来框住字符串
school = 'huazhu'
print(school)
'huazhu'
双引号 " " 主要用来框住字符串
addr = "guangzhou"
print(addr)
'guangzhou'
三引号 (“”" “”" / ‘’’ ‘’') 【双引号、单引号皆可】
框内可以实现换行
print("""
hello world
python test
""")
hello world
python test
2.3 tuple
元组是有序且不可更改的集合。在Python
中,元组是用圆括号编写的。
tuple_test = ("apple", "banana", "cherry")
print(tuple_test)
('apple', 'banana', 'cherry')
# tuple_test(元组)的类型
type(tuple_test)
<class 'tuple'>
# tuple_test(元组)可使用的方法【“count” & “index”】
dir(tuple_test)
['__add__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']
3、序列
用来存储多个值的连续内存空间的数据类型。
3.1 有序序列
按照顺序进行元素的排列并且可以使用索引的方式去对这个序列进行切片的序列,如字符串(string)、列表(list)、元组(tuple)等。
有序序列可以使用sort
或者sorted
两个函数进行序列的排序,并且可以在迭代时按照序列的索引获取序列中的元素。
3.2 无序序列
使用随机排列方式的序列,其中的元素不允许重复,如字典(dict)、集合(set)等。
集合可以通过循环输出元素,字典可以通过键匹配对应的值输出元素。