1,python的基本数据类型
python是一门很灵活的语言,俗称”胶水语言”。”人生苦短,我用python”。
python之禅
1 | The Zen of Python, by Tim Peters |
python的基本数据类型:int、float(单精度和双精度都是用float表示,不像java一样有float和double之分)。
2,python的数据结构
列表
比如[1,2,3]是一个列表,用type([1,2,3])函数会输出 class ‘list’,class表示是什么类型,这里说明[1,2,3]是一个列表,列表可以嵌套:[[1,2,3],[‘123’],[True]]也是一个列表,元素可以是不同的类型。
元组
python有很多种方法可以表示元组,先学习其中一种:(1,2,3,4),(1,2,’True’)都是元组。type((1,2,3))得出数据类型是 tuple,tuple就是元组的意思。
为什么是 int
1 | >>> type((1)) |
以上按照我们理解应该是一个元组,只有一个元素,为什么不是呢?而是int型呢?什么原因?再看:
1 | >>> type(('helo')) |
其实括号还有运算的作用,比如 (1+1)*2,我们都知道显示1和1相加再乘以2,因为括号的优先级在这里高于乘号,编译器怎么猜测我们是想运算还是定义一个元组呢,这时候编译器就不知道了,所以python编译器硬性规定,括号只有一个元素的这种情况为运算,不是元组。那怎么定义只有一个元素的元组呢?,(1,):加一个逗号,假装后面还有一个元素。
1 | >>> type((1,)) |
这个时候type函数返回的就是tuple类型了。
定义元素为空的元组,()。括号里面什么也没有。
1 | >>> type(()) |
可以看到 “()”是一个元组,只不过里面没有元素。
type([1])返回什么呢?返回list,是列表类型。
1 | >>> type([1]) |
元组也叫序列,str、tuple、list都是序列,序列的共有操作:
- ‘hello world’[2] :序列的每个元素都会分配一个序号(或者角标,它有顺序)
- 切片:[1,2,3,4,5][0:3];[1,2,3,4,5][-1:]; ‘hello world’[0:8:2],这里有三个数,什么意思?
- 是否包含某个元素:3 in [1,2,3,4,5],返回True,10 in [1,2,9],返回False,3 not in [1,2,3],返回False。
- 求元素长度,len([1,2,3,4,5,6]),返回6;len(‘hello world’),返回11,max([1,2,3,4,5,7]),求最大值,返回7,min([1,2,7]),求最小值,返回1;max(‘helloowrld’),返回’w’,min(‘helloowrld’),返回’d’,也是ASCII码最大最小。如果是代码min(‘helloowrld’),就输出空格,如下所示:
1 | >>> 3 in [1,2,3] |
ord()函数可以求字符的ASCII码,
1 | >>> ord('a') |
3,数据结构之set
集合很重要的一个特性:无序。
定义
{1,2,3,4,5,6}是一个集合
1 | >>> type({1,2,3,4,5,6}) |
- 集合是无序的,没有角标,也就是没有索引,和序列的操作很不同。
1
2
3
4
5>>> {1, 2}[1]
Traceback (most recent call last):
File "<pyshell#28>", line 1, in <module>
{1, 2}[1]
TypeError: 'set' object does not support indexing
如上,如果想对集合类似于序列的操作(在这里是找出第二个元素编译亲会报错,不支持索引,这是集合和序列的一大区别)
- 无重复元素。
1
2>>> {1,1,2,2}
{1, 2}
集合基本操作:
1 | >>> len({1,2,3}) |
字典dict
字典的key,字典的value。
通过key查询value。字典可以有很多个key和value。
1 | {key1:value1,key2:value2....}:字典的定义,它和set有什么区别?在于每一个元素的定义,set单个,字典是键值对。 |
总结
python基本数据类型图解:
字符串不可变,列表可变。