基本数据类型
所有内容基于Python3
- Number
Number
- int
- float
- bool
- complex
Python里面不区分单精度和双精度,所有表示都是双精度
注意点:
- 整数加、减、乘小数都为浮点数类型
- 整数除整数为浮点数,若想得到整数,需要双斜杠:2//2 -> 1(类型为整数),且 双斜杠为整除
- 不贰类型Ture
进制
如何表示二进制? 在前面加上0b,如2的二进制为0b10
如何表示八进制? 在前面加上0o,如8的八进制为0o10
如何表示十六进制? 在前面加上0x,如16的十六进制为0x10
- 进制转换
- 转换为二进制,使用 bin()方法,如bin(10) => ob1010
- 转换为10进制,使用int()方法
- 转换为八进制,使用oct()方法
- 转换为十六进制,使用hex()方法
str 字符串
- 单引号
- 双引号
- 三引号(主要用来维持字符串原样输出)
转译字符
\n 和 \r的不同
\n : 移到下一行,但不是行首,而是和上一行水平位置一样 \r : 将光标移到行首,但是不会移到下一行,如果继续输入的话会覆盖掉前面的内容
序列
- str
- list
- tuple
共同点:
- 所有元素都有序,会被分配一个序号
- 切片操作
- 使用 ‘in’ / ‘not in’ 判断一个元素是否在序列中
- 使用 len() 函数判断序列元素个数
- max()、min()
不同: 字符串和元组都是不可变的
元组和列表 元组和列表最大的区别就是,列表中的元素可以进行任意修改,就好比是用铅笔在纸上写的字,写错了还可以擦除重写; 而元组中的元素无法修改,除非将元组整体替换掉,就好比是用圆珠笔写的字,写了就擦不掉了,除非换一张纸
列表
一组数据,列表数据类型不要求一致,可以为任意类型,甚至也可以是列表 定义
[1,2,3,4,5,6]
基本操作
# 单个使用得到具体元素
[1,2,3,4][0]
# 冒号获取,得到一个新元组
[1,2,3,4][-1:]
# 加法
[1,2] + [3,4] => [1,2,3,4]
# 乘法
[1,2] * 2 => [1,2,1,2]
元组
括号表示的一组元素 定义
(1,2,3)
基本操作
# 单个使用得到具体元素
(1,2,3,4)[0]
# 冒号获取,得到一个新元组
(1,2,3,4)[-1:] => (4,)
# 加法
(1,2) + (3,4) => (1,2,3,4)
# 乘法
(1,2) * 2 => (1,2,1,2)
# 注意点
type((1))) => 类型为int,单个元素得到的是对应元素类型
定义一个元素的元组
type((1,)))
定义一个空元组
type(()))
集合 set
集合是无序、不重复,区别于序列,用大括号表示
定义
{1,2,3}
因为无序,所以无法通过下标或切片方式获取元素
操作
# 存在判断
1 in {1,2,3}
2 not in {1,2,3}
# 求两个集合差集
{1,2,3} - {2,3}
# 交集
{1,2,3} & {2,3}
# 并集
{1,2,3} | {3,4,5}
# 定义一个空的集合,需使用函数
set()
字典 dict
无序,很多个key,value对 类似:{key1:v1,key2:v2} value 可以为任意类型,key需要是不可变类型 定义
{1:1,2:2}
# 获取
{k1:v1,k2:v2}[k1]
# 空字典定义
{}
变量定义
组成:数字、下划线、字母
特点:
- 不能用数字开始
- 系统关键字不能使用
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue',
'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in',
'is','lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
虽然type不是保留关键字,但是还是不推荐使用
>>> type=1
>>> type(1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable
需要注意的是,由于 Python 是严格区分大小写的,保留字也不例外。所以,我们可以说 if 是保留字,但 IF 就不是保留字
表达式优先级
- 对照表
| 运算符说明 | Python运算符 |
|---|---|
| 小括号 | () |
| 乘方 | ** |
| 按位取反 | ~ |
| 符号运算符 | +(正号)、-(负号) |
| 乘/除 | *、/、//、% |
| 加减 | +、- |
| 位移 | »、« |
| 按位与 | & |
| 按位异或 | ^ |
| 按位或 | | |
| 比较运算符 | ==、!=、>、>=、<、<= |
| is运算符 | is 、is not |
| in运算负 | in 、not in |
| 逻辑非 | not |
| 逻辑与 | and |
| 逻辑或 | or |
- and 或 or
其一, 在不加括号时候, and优先级大于or
其二, x or y 的值只可能是x或y. x为真就是x, x为假就是y
其三, x and y 的值只可能是x或y. x为真就是y, x为假就是x