数字
整形int
二进制: 0b\0B
八进制: 0o\0O
十六进制: 0x\0X
浮点型float
布尔型bool
复数complex
组
序列
字符串
- 有序的
- 可以通过序号访问
正向和反向序号的不同
正向是0开始
反向是-1开始
- 可以通过序号访问
- 切片功能
注意
“:”和留白的应用
s[:m]
s[m:]
… - 不可变的
>>> s = 'foobar'
>>> s[3] = 'x'
Traceback (most recent call last):
File "<pyshell#40>", line 1, in <module>
s[3] = 'x'
TypeError: 'str' object does not support item assignment
想完成替换,可以使用
切片方法:
>>> s = s[:3] + 'x' + s[4:]
>>> s
'fooxar'
函数:
>>> s = 'foobar'
>>> s = s.replace('b', 'x')
>>> s
'fooxar'
- 转义字符:
一行太长需要换行:输入‘\’后enter
>>> print('a\
... b\
... c')
abc
\t — tab
>>> print("a\tb")
a b
>>> print("a\141\x61")
aaa
>>> print("a\nb")
a
b
- r和R的作用:将\保留,保持原始字符串形式
print('foo\nbar')
print(r'foo\nbar')
print('foo\\bar')
print(R'foo\\bar')
- 字符串运算
'foo' * 4
'foo' * -4
- f-string
python3.6 介绍的一种新的字符串格式化方式比较两组代码
传统:
>>> n = 20
>>> m = 25
>>> prod = n * m
>>> print('The product of', n, 'and', m, 'is', prod)
The product of 20 and 25 is 500
f-string:
>>> n = 20
>>> m = 25
>>> prod = n * m
>>> print(f'The product of {n} and {m} is {prod}')
The product of 20 and 25 is 500
列表(list)
- 有序的
- 元素可以通过序号访问
- 切片功能
- 可变的
- 可以包含任意的对象
- 可以多维
元组(tuple)
- 单元素元组的注意事项
type((1)) - 整形
type((“hello”)) - 字符串
如何定义只有一个元素的元组? - (1,),可以使用type((1,))检验
如何定义一个空的元组? - (),可以使用type(())检验 - 有序的
- 不可变的
- 使用元组的好处
- 同等情况下处理速度比list快
- 对于整个生命周期不变的数据,防止被篡改
- 在字典里可以用来定义不可变的部分(就是key)
集合(set)
- 无序,没有索引,不能切片
- 不重复
- a,b = b,a
>>> a = 'foo'
>>> b = 'bar'
>>> a, b
('foo', 'bar')
>>># Magic time!
>>> a, b = b, a
>>> a, b
('bar', 'foo')
- 可改变
- frozenset不可改变
>>> x = frozenset(['foo', 'bar', 'baz'])
>>> x
frozenset({'foo', 'baz', 'bar'})
除了不可改变,其他和set一样
字典(dict)
- key:value 键值对是最基本的概念
- 任何不可变的数据类型都可以作为key
总结
有序 | 无序 | |
---|---|---|
可变 | 列表 | 集合、字典 |
不可变 | 字符串、元组 | 数字 |
如果有任何疑问、建议或者有相关问题的讨论,欢迎留言或者直接给我email:tianhy1988@gmail.com