3. Python基础
3.1 数据类型和变量
3.1.1 数据类型
整数
-
Python可以处理任意大小的整数,当然包括负整数
-
十六进制0x…
浮点数
-
1.23x109就是
1.23e9
-
0.000012可以写成
1.2e-5
字符串
-
可用
''
或""
,字符串中包含这两个字符时用\
来转义 -
转义字符
转义字符 | 意义 |
---|---|
\n | 换行 |
\t | 制表符 |
\ \ | \ |
-
Python还允许用
r''
表示''
内部的字符串默认不转义 -
Python允许用
'''...'''
的格式表示多行内容
>>> print('''line1
... line2
... line3''')
line1
line2
line3
布尔值
- True False
- 运算:
and
,or
,not
空值
- None
3.1.2 变量
3.2 字符串和编码
3.2.1 字符编码
ASCII
编码、GB2312
编码Unicode
把所有语言都统一到一套编码里- ASCII编码和Unicode编码的区别:ASCII编码是1个字节,而Unicode编码通常是2个字节
- Unicode编码比ASCII编码需要多一倍的存储空间,在存储和传输上就十分不划算→转化为“可变长编码”的
UTF-8
编码 - 大量只支持ASCII编码的历史遗留软件可以在UTF-8编码下继续工作
3.2.2 Python的字符串
- Python 3版本中,字符串是以Unicode编码的
- 单个字符的编码,Python提供了
ord()
函数获取字符的整数表示,chr()
函数把编码转换为对应的字符
>>> ord('A')
65
>>> chr(66)
'B'
-
Python的字符串类型是
str
,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str
变为以字节为单位的bytes
。 -
bytes
类型的数据用带b
前缀的单引号或双引号表示x = b'ABC'
-
Unicode表示的
str
通过encode()
方法可以编码为指定的bytes
>>> 'ABC'.encode('ascii')
b'ABC'
>>> '中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87
- 在
bytes
中,无法显示为ASCII字符的字节,用\x##
显示。 - 从网络或磁盘上读取了字节流,那么读到的数据就是
bytes
。要把bytes
变为str
,就需要用decode()
方法
>>> b'ABC'.decode('ascii')
'ABC'
>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'
-
如果
bytes
中只有一小部分无效的字节,可以传入errors='ignore'
忽略错误的字节 -
计算
str
包含多少个字符,可以用len()
函数
>>> len('ABC')
3
>>> len(b'ABC')
3
>>> len('中文'.encode('utf-8'))
6
- 当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
3.3.3 格式化
- 占位符
占位符 | 替换内容 |
---|---|
%d | 整数 |
%f | 浮点数 |
%s | 字符串 |
%x | 十六进制整数 |
- .format()
3.3 使用list和tuple
3.3.1 list
- [ ]
- len(list)
- append(element)
- insert(index, element)
- pop([index])
- .sort()
3.3.2 tuple
- ( )
- 一旦初始化就不能修改
- Python在显示只有1个元素的tuple时,也会加一个逗号
,
>>> t = (1,)
>>> t
(1,)
3.4 调节判断
3.5 循环
3.6 使用dict和set
3.6.1 dict
- 字典,也称map。使用键-值(key-value)存储,具有极快的查找速度。
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Michael']
95
- 判断key是否存在
>>> 'Thomas' in d
False
>>> d.get('Thomas', -1)
-1
-
删除元素
pop(key)
-
dict和list对比
-
dic:
- 查找和插入的速度极快,不会随着key的增加而变慢;
- 需要占用大量的内存,内存浪费多。
- list:
- 查找和插入的时间随着元素的增加而增加;
- 占用空间小,浪费内存很少。
-
dict的key必须是不可变对象
-
key计算位置的算法称为哈希算法(Hash)
3.6.2 set
- 也是一组key的集合,但不存储value。
- key不能重复
- 提供list作为输入集合
>>> s = set([1, 2, 3])
>>> s
{1, 2, 3}
-
add(key)
-
remove(key)
-
set可以看成数学意义上的无序和无重复元素的集合, 两个set可以做数学意义上的交集、并集等操作
s1 & s2
,s1 | s2
参考教程
(转载整理自网络,如有侵权,联系本人删除,仅供技术总结使用)