python学习笔记整理01(变量、数据类型、容器、输入和输出、运算符)
一、变量
1. 介绍:①含义:内存地址的别名 ②作用:存储数据 ③注意:变量必须先定义后使用
2.定义:变量名 = 数据值,示例:name = '张三'
3.使用:变量名,示例:print(name)
4.命名规范
4.1 标识符规则
1)必须由字母、下划线、数字组成,且不能以数字开头
2)不能使用 python 中的关键字作为变量名
3)区分大小写
4.2 命名建议
1)驼峰命名法,示例:大驼峰 MyName,小驼峰myName
2)下划线连接法,示例:my_name
3)见名知意,示例:名称 name
二、数据类型
1.分类
1.1 数字类型
1)整型 int
2)浮点型 float
3)布尔类型 bool,仅有两个值:True, False
4)复数类型 complex,示例:3 + 4i
1.2 非数字类型
1)字符串 str,示例:'name'
2)列表 list,示例:[1, 1.2, 'name', False]
3)元组 tuple,示例:(1, 1.2, 'name', False)
4)字典 dict,示例:{'name': '张三', 'age': 19}
2.查看:type(),示例:type('name') ===> <class 'str'>
3.类型转换
3.1 转换:变量名 = 数据类型(原数据),示例:num = int('20')
3.2 可转换类型
1)int():①字符串类型的整数 ②浮点类型的数字(注:只会保留整数位)
2)float():①字符类型的数字 ②整数类型的数字
3)str():任何类型
3.3 补充用法 eval():执行一个字符串表达式,并返回表达式的值,示例:x = 7 eval('2 * x') ==> 14
作为数据转换用途,可理解为字符串类型(去掉字符串的两个引号,将其解释为一个变量)
①若为字符串类型的数字,单、双引号解释为 int 类型,三引号解释为 str 类型
②若为字符串类型的非数字,单、双引号不解释报错 NameError,三引号解释为 str 类型
三、容器
1 介绍
①含义:一种数据类型,也称为数据序列、高级数据类型 ②作用:存储多个数据 ③分类:str, list, tuple, dict
2 字符串
2.1 定义
1)定义方法:引号 ' ' , " ", "" ""
2)字符串本身包含引号时:
①引号叠用,示例:"I'm XX",'XX is "kaikai" hh'
②转义字符,示例:\' ===> '
③转义转义字符,示例:\\\' ===> \'
④原生字符串标识,示例:r'\'' ===> \'
2.2 获取
1)字符长度:len(字符串)
2)下标:①语法:字符串[下标数字] ②python支持负下标:正数从0开始,负数从-1开始
3)切片:①语法:字符串[开始下标: 结束下标: 步长] ②默认值:开始默认0,结束默认 len(),步长默认1,均可省略,但第一个冒号不可省略 ③特殊用法:反转字符[::-1]
2.3 查找
1)find:①语法:字符串.find(查找字符, 开始下标, 结束下标) ②默认值:开始默认0,结束默认 len() ③返回值:若找到返回该字符第一次出现的下标值,若未找到返回 -1
2)index:①语法:字符串.index(查找字符, 开始下标, 结束下标) ②默认值:开始默认0,结束默认len() ③返回值:若找到返回该字符第一次出现的下标值,若未找到代码报错
2.4 替换
①语法:字符串.replace(原字符, 替换字符, 次数) ②默认值:次数默认全部 ③返回值:替换后的字符串(注意:返回的是一个新字符串,原字符串不改变)
2.5 拆分
①语法:字符串.split(分割字符, 分割次数) ②默认值:分割字符默认空字符(包括空格、换行、缩进),分割次数默认全部(注:使用默认分割字符,但要指定分割次数时需写作:字符串.split(maxsplit=n)) ③返回值:切割后字符组成的列表
2.6 连接
①语法:字符串.join(由字符串组成的容器) ②返回值:连接后的字符串
3 列表
3.1 定义:[ ]
3.2 获取:
1)下标:列表[index]
2)切片:列表[__start: __end: __step]
3.3 查找:
1)查找具体数据:①语法:列表.index(sub, __start, __end) ②默认值:开始默认0,结束默认len() ③返回值:若找到返回该字符第一次出现的下标值,若未找到代码报错
2)查看是否包含:①语法:if 数据 in 列表 ②返回值:找到返回 True,没找到返回 False
3)查看出现次数:①语法:列表.count(数据) ②返回值:返回出现的次数,数据类型为整型
3.4 添加
1)尾部添加:①语法:列表.append(data) ②返回值:None ③扩展-快速生成列表:[生成数据的规则 for 变量 in 循环条件]
2)索引添加:①语法:列表.insert(index, data) ②若下标位置有数据,则依次向后移动 ③返回值:None
3)合并列表:①语法:列表1.extend(列表2) ②作用:将列表2的数据依次添加在列表1的尾部,合并为一个列表 ②返回值:None
4)添加方法返回值均为 None,若需查看,直接打印列表名
3.5 修改:①语法:列表[index] = data ②作用:修改指定下标值的数据,若下标不存在,代码报错 IndexError
3.6 删除
1)根据下标删除:①语法:列表.pop(index) ②默认值:下标不写默认删除最后一个数据 ③返回删除的数据
2)根据数据删除:①语法:列表.remove(data) ②返回值:None,如果数据不存在代码报错
3)清空全部数据:①语法:列表.clear()
3.7 反转(倒置)
1)切片:①语法:列表[::-1] ②返回:返回一个新列表(原列表不改变)
2)reverse:①语法:列表.reverse() ②返回:None(直接修改的原列表)
3.8 复制
1)切片:①语法:变量 = 列表[:]
2)copy:①语法:变量 = 列表.copy()
3.9 排序:
1)语法:列表.sort(reverse=False) ,默认值:reverse默认False,为False时升序排序,为True时降序排序
2)一般只对数字比大小,若比较字符串大小,是比较字母对应的 ASCII 码值:
①A < Z < a < z ②ord(字符) 获取 ASCII 码值 ③chr(ASCII码值) 获取对应字符
3.10 嵌套:[[ ], [ ]]
3.11 如何给列表中的数据去重
1)遍历法:
list1 = [1, 3, 1, 4, '小明', '小丽', 'HH', 1, '小明'] new_list =[] # 遍历原列表的数据 for i in list1: # 判断新列表中是否存在该数据 if i not in range(len(list1)): # 若不存在,存入新列表 new_list.append(list1[i])
2)集合法(集合 set 也是 python 中的一种容器,其特点是不能有重复的数据):
list1 = [1, 3, 1, 4, '小明', '小丽', 'HH', 1, '小明'] # set(list1) 将列表转为集合类型 # list(set(list1)) 将集合类型转为列表类型 new_list = list(set(list1))
4 元组
4.1 定义:()
4.2 元组和列表对比:
内容 | 元组 | 列表 |
可存放任意类型的数据 | √ | √ |
可存放任意数量的数据 | √ | √ |
容器内数据可修改 | × | √ |
定义方式 | ( ) | [ ] |
适用场景 | 函数的传参或返回值 | 无限制 |
容器内仅一个数据 1 | (1,) 元组内必须加逗号 | [1] 直接书写 |
4.3 下标:元组[index]
4.4 切片:元组[start: end: step]
4.5 查看:
1)①语法:元组.index(sub, __start, __end) ②默认值:开始默认0,结束默认len() ③返回值:若找到返回该字符第一次出现的下标值,若未找到代码报错
2)查看是否包含:①语法:if 数据 in 元组 ②返回值:找到返回 True,没找到返回 False
3)查看出现次数:①语法:元组.count(数据) ②返回值:返回出现的次数,数据类型为整型
5 字典
5.1 定义:{key: value, key: value} 字典是由键值对组成的,一组键值对是一个数据,键 key 不可重复,一般都是字符串,也可以是数字,但不能是列表
5.2 增加和修改:①语法:字典[键] = 数据 ②若键存在,则是修改,若键不存在,则是增加
5.3 删除:
1)删除键值对:①字典.pop(键) ②del 字典[键]
2)清空字典:字典.clear()
5.4 查找:
1)①语法:字典[键] ②返回值:键存在返回查找到的数据,键不存在代码报错
2)①语法:字典.get(键, 返回值) ②默认值:返回值默认None,一般不指定 ③返回值:键存在返回查找到的数据,键不存在返回 返回值
5.5 遍历:
1)遍历 键:①for 变量 in 字典: ②for 变量 in 字典.keys():
2)遍历 值:for 变量 in 字典.values()
3)遍历 键值对:for 变量 in 字典.items()
6 容器通用的方法
6.1 + 方法:
1)字符串:‘abc' + ' def' ===> 'abc def'
2)列表:[1, 2, 3] + [4, 5] ===> [1, 2, 3, 4, 5]
3)元组:(1, 2, 3) + (4, 5) ===> (1, 2, 3, 4, 5)
6.2 * 数方法:
1)字符串:’hi ' * 3 ===> 'hi hi hi'
2)列表:[1, 2] * 3 ===> [1, 2, 1, 2, 1, 2]
3)元组:(1, 2) * 3 ===> (1, 2, 1, 2, 1, 2)
6.3 len() 方法:适用于所有容器
6.4 in 方法:适用于所有容器,注意在字典中判断的是 键 是否存在
三、输入输出
1.输入:①语法:变量 = input('提示信息') ②返回值:是输入的内容, 数据类型是字符串
2.输出:
2.1 基本输出:①语法:print(打印内容)
2.2 格式化输出:
1)% 格式化输出
书写方式 | 说明 |
%d | 整型占位,若需指定位数,书写 %0nd |
%f | 浮点型占位,若需指定小数点数,书写 %.nf |
%s | 字符型占位,可填充任意类型数据 |
% % | 输出 % |
print('%d' % 变量) | 将 变量 填充至占位符 %d 处,若是多个变量需加 () |
2)F-sring 格式化输出:①语法:f'{变量}' 将变量填充至占位符 {} 处 ②用法:f 不区分大小写,若要指定位数,可用{ 变量:0nd} {变量:.nf} ③注意:仅 python3.6 后版本支持
3)format 格式化输出:①语法:'{}'.format(变量) 将变量填充至占位符 {} 处
四、运算符
1.算数运算符:①符号:加+ 减- 乘* 除/ 商% 余// 幂** ②优先级:() > ** // % * / > + -
2.比较运算符:①符号:> >= < <= == != ②返回值:返回布尔类型,为真 True,为假 False ③数字:1为 True,0为 False,字符串:空为 False,其余均为True
3.逻辑运算符:①符号:与and 或or 非not ②优先级:() > not > and > or
4.赋值运算符:①符号:= ②复合赋值运算符:+= -= *= /= //= %=