1. while循环
while 条件:
代码块(循环体)
break 结束当前本层循环.
continue 结束当前本次循环. 继续执行下一次循环
else:
当条件不成立的时候执行这里的代码
2. 格式化输出
%s 占位符 , 占位的是字符串
%d , 占位数字
3. 运算符
逻辑运算
and 并且的意思. 左右两端同时为真. 结果才是真
or 或者的意思. 左右两端有一个是真. 结果就是真
not 非真既假 非假既真
1. int + - * / % // **
bit_length()
2. bool 类型转换
结论1: 想把刘伟转换成刘德华. 刘德华(刘伟)
结论2: True => 1 False => 0
结论3: 可以当做False的数据: 0, "", [], (), {}, set(), None. 所有的空都是False
3. str字符串
字符: 单一的文字符号
字符串: 有序的字符序列
‘, ", ‘‘‘, """括起来的内容就是字符串
索引和切片:
1. 索引下标从0开始
2. 切片:[start: end: step]
1. 顾头不顾尾
2. 默认从左往右取. 如果step是负数. 从右往左取
操作:
1. uppper() 转化成大写
2. strip() 去掉空白(空格, 制表符\t, 换行符\n) white space
3. replace(old, new) 替换
4. split() 切割, 结果是列表
5. startswith() 判断是否以xxx开头
6. find() index()
7. isdigit() 判断是否由数字组成
8. len() 求字符串长度, 内置函数. 直接就可以了
迭代:
for 变量 in 可迭代对象:
循环体
###################################################################
1. 列表的定义:
能装对象的对象. 由[]表示. 内部使用逗号隔开
索引和切片 . 从0开始
[start: end: step]
2. 增删改查
1. 新增: append(), insert(), extend()迭代添加
2. 删除: pop(), remove(), clear(), del 元素
3. 修改: 索引或切片修改
4. 查询: 索引查询 for el in list:
5. 操作: count(), index(), find(), sort(reverse=True), reverse()
3. 元组(tuple):
由()表示. 内部用逗号隔开.
不可变, 只读列表
不可变指的是第一层元素.
不可变的数据类型: int, str, bool, (元组)
4. range()
range(10) 0-9
range(1, 12) 1-11
range(1,12, 3) 1 4 7 10
for el in list: # 没有索引
for i in range(len(list)):
list[i]
###################################################################
字典:
由{}括起来. 每个元素用逗号隔开, key:value的形式存储数据
key: 不可变的. 可哈希的.
增删改查:
1. 增加: 直接用新key来赋值. dict[key] = value setdefault()
2. 删除: pop(key), popitems(), clear(), del dict[key]
3. 修改: dict[key] = value, update()
4. 查询: get(key) dict[key] setdefault()
5. 常用操作:
1. keys() 拿到所有的key
2. values() 拿到所有的value
3. items() 拿到所有的键值对. (key, value)
6. 字典的遍历
for k,v in dict.items():
for k in dict:
dict[k]
###################################################################
1. 小数据池, 缓存字符串, 整数, 布尔值. 提高内存使用效率. 不需要重复创建对象
数字: -5~256
字符串:
单个直接缓存
多个字符. 只有数字, 字母, 下划线会缓存
乘以1,同上
乘以大于1, 总长度不超过20 4096
在同一个代码块中. 以上规则会有变化.
1. 数字. 默认都缓存.
2. 字符串. 默认也都缓存.
在不同的代码块中. 遵守的就是最上面的规则
2. is和==的区别
== 比较的是值.
is 比较的是内存地址
3. 编码
encode() 编码
decode() 解码
###################################################################
join() 把列表中的每一项用字符串拼接起来
split() 相反
1. 关于删除(重点)
1. 循环迭代过程中不能删除。
2. 创建新列表。 把要删除的内容保存在新列表中。 循环新列表, 删除老列表
3. 字典在循环的时候可以修改, 但不能新增和删除
dict.fromkeys(k, v)
把key迭代。和value组合成k:v创建新字典, 所有的key共享同一个value
2. set集合(粗略)
特点: 无序, 去重, 哈希
lst = []
list(set(lst)) # 去重复
3. 深浅拷贝(难点)
1. 赋值。 不会产生新对象,和拷贝无关
2. 浅拷贝。 只会复制自身。 会创建对象
3.深拷贝,把内部所有的内容都进行拷贝