1.Python
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1.1 环境搭建:官网下载python,编译器:pycharm或jupyter |
| 1.2 变量 (1)语法:变量名=变量 (2)标识符命名规则:由数字、字母、下划线组成;不能以数字开头;不能使用内置关键字;严格区分大小写 (3)命名习惯:见名知意,驼峰命名(大驼峰小驼峰) |
| 1.3 格式化输出 (1)输出函数:print() (2)格式化函数:format(); 语法:'{}'.format() 作用:用于格式化字符串,可以接受无限个参数,可指定顺序,最后输出的是一个字符串 %s:字符串 %d:十进制数
%f:十进制浮点数,小数点默认保留6位 |
| 1.4 输入函数:input() 语法:变量名 = input()控制台输入的为字符串类型;(变量名存储输入函数) |
| 1.5 数据类型 python可自定义数据类型(理论上有无数种数据类型); 默认的有6种标准数据类型: (1)数值类型 整数型int;常用的四种声明方式:变量名=数值(十进制);变量名=0b数值(二进制0和1);变量名=0o数值(八进制);变量名=0x数值(十六进制0-9A-F); 浮点数:float;变量名=小数; 复数型(不常用):complex;两种声明方式:变量名=实数+虚数i;变量名=complex(实数,虚数); 布尔值:bool(True和False) (2)字符串类型String 1 字符串:string,文字类型,三种声明方式:变量名='内容';变量名="内容";变量名='''内容'''; 2 转义符: \(续航符:拼接作用) \\转译为一个单纯的\,或\'转译为一个单纯的',或\"转移为一个单纯的" \n换行符: \r回车符: 通常不单独使用,结合换行符一起使用 \t水平制表符:占位,4个字符算一个位置 r:元字符串,在任意字符串前添加r或R,使字符串内任意的转译符号失效,直接显示 (3)列表list:可变的有序序列(增删改查),通常用于存储同类项目的集合,元素类型可不必相同,元素可重复,用[元素1,元素2...]声明 (4)元组tuple:不可变的有序序列(内部元素不可改变),通常用来保存程序中不可修改的部分,元素类型可不必相同,元素可重复,用(元素1,元素2...)声明 (5)集合set:无序序列,元素不可重复,常见的用途(成员检测,从序列中去重,数学中的集合计算例如交集并集差集等) 分为可变集合set和不可变集合frozenset,声明方式{元素1,元素2...} (6)字典dict:可变的无序序列,是一种映射类型,以键值对形式存储(key唯一),用{key:value...}声明 |
| 1.6 缩进 :一个tab,或4个空格 |
| 1.7 注释: (1)单行注释 # (2)多行注释 三个单引号 '''
|
| 1.8 运算符 (1)算术运算符 **幂运算,%取余数, //除法取整运算 (2)比较运算符 <、>、>=、==、<=、!= (3)赋值运算符 =、+=、-= (4)逻辑运算符 and/or/not |
2.程序结构
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1.顺序结构:从上往下依次执行,中间没有任何的判断和跳转 |
| 2.选择结构:根据条件判断的结果来选择执行不同的代码,可以是单分支、双分支以及多分枝 单分支:if: 双分支:if: else: else不能单独使用,与同层级向前匹配最近的if 多分支:if: elif: else: 三元表达式:简化条件判断语句,得到的是一个表达式 语法:[条件成立的表达式] if 条件 else[条件不成立的表达式] 为了保证程序的清晰易读,复杂的程序逻辑不建议使用三元表达式 实战: If else 判断 三元表达式 |
| 3.循环结构:根据条件来重复执行某段代码或者遍历序列中的元素,通过while和for语句实现循环 while 条件(布尔类型表达式):循环体 for 变量名 in 迭代对象:循环体 常用的迭代对象:列表、字典、元组、集合、字符串 负数可以从大到小 嵌套循环:99乘法表 |
3.数据类型的具体操作
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 查看数据类型-type() 数据转换 |
| 列表的基本操作 list1 = [] # 定义一个空列表 list2 = [1, 2.2, "hello", [1, 2, 3]] # 访问列表 print(list2) # 查看整个列表 print(list2[2]) # 通过下表查看单个元素 # 增删改操作 # 1.直接添加到列表的最后一位append() list2.append(2) print(list2) # 2.指定位置新增元素insert,下标从0开始 list2.insert(2,"s") print(list2) # 删除 # remove()删除某个元素,如果元素重复,默认删除第一个 list2.remove(1) print(list2) # 2.del 根据下标决定删除谁 del list2[5] print(list2) # 3. delitem()通过下标删除元素 list2.delitem(3) print(list2) # 修改对应元素,重新赋值的过程 list2[0] = 100 print(list2) # 列表的运算符操作 # 1.+和*,+:实现列表的合并 *:实现列表元素的重复 # 2.比较运算符都可以使用,实现列表内部元素的比较,从第0个元素开始,按照数值的大小或ascii表的顺序实现比较 # 3.地址比较:is和is not 实现列表内存地址的比较 # 4.成员比较:in和not in 实现列表是否包含某个元素的判断 # 5.自运算符操作:+=,*= # 列表的合并 list3 = [1,2,3] list4 = [1,2,3,"a","b"] print(list3+list4) print(list4+list3) # 列表元素的重复 print(list3*3) print(list3<list4) print(list3==list4) print(list3 is list5) print(1 in list3) print("a" in list3) |
| # 列表的切片 对列表进行截取、反转等操作 ''' [a:b:c] a:从哪开始 b:到哪位置 c:步长 左闭右开 list[-1] 返回列表最后一个 list[:1] == list[0:1:1] 返回列表第0到1的元素 list[1:] 返回第二个到最后一个数据 list[-1:] 返回最后一个数据 list[:-1] 返回第一个到倒数第二个数据 list[::1] 返回原列表 list[::-1] 返回原列表的倒序 list[::2] 返回从左往右 步长为2进行切片 ''' list6 = [5,14,75,22,39] print(list6[1:3]) # 从下标1开始到下标3结束,不包含下标3的元素 print(list6[2:]) # 从下标2开始,到末尾最后一个元素结束 print(list6[:2]) # 截取列表前两个元素,下标为0,1 print(list6[-2:]) # 截取末尾2个元素 #反转 print(list6[::-1]) [14, 75] [75, 22, 39] [5, 14] [22, 39] [39, 22, 75, 14, 5] |
| # 列表转换 tuple(),set(),list() list8 = [5,14,75,22,39] print(list8.count(5)) # 统计某个数值在列表中出现的次数 # list8.clear() # max(),min(),sort() list8.sort() print(list8) # 拷贝 # 1.浅拷贝 copy() list2 = list1.copy() # 2.深拷贝 import copy list2 = copy.deepcopy(list) # 浅拷贝只适用于一维数组 # 深拷贝完全的内存拷贝 list9 = list8.copy() import copy list10 = copy.deepcopy(list8) print(list9) print(list10) |
| 元组 tuple1 = (11, 22, 33, 44, 55) # 枚举+遍历 for index, value in enumerate(tuple1): print(index, value) for index in zip(tuple1): print(index) 0 11 1 22 2 33 3 44 4 55 (11,) (22,) (33,) (44,) (55,) |
| 字典 dict1 = {} # dict1["name"] = "aa" # dict1["age"] = 18 a = (("name", "aa"),("age", "18")) b = (("name1", "aa"),("age1", "18")) dict2 = dict(a) # print(dict1) dict2["father"] = "bb" dict2.update(b) print(dict2) # 获取某个key的value print(dict2["father"]) # dict2.get(key,返回值) print(dict2.get("father1",0)) # 如果key存在,返回value,否则返回0 {'name': 'aa', 'age': '18', 'father': 'bb', 'name1': 'aa', 'age1': '18'} bb 0 # 返回所有键值对 print(dict2.keys()) print(dict2.values()) for i in dict2.values(): print(i) for j in dict2.keys(): print(j) aa 18 bb aa 18 name age father name1 age1 字典的删除 dict2.pop("father") # 删除对应键值对,返回相应的键 dict2.popitem() # 默认删除最后一组键值对 del dict2["name"] del dict2 dict2.clear() |
| 遍历字典 |
| 集合set a = {1, 2, 3, 4, 5} b = {5, 6, 7, 8} # 差集 - print(a-b) print(b-a) # 并集 | 去除重复值 print(a|b) # 交集 & print(a&b) # 对称差集 ^ 两个集合中不同时存在的元素 print(a^b) {1, 2, 3, 4} {8, 6, 7} {1, 2, 3, 4, 5, 6, 7, 8} {5} {1, 2, 3, 4, 6, 7, 8} |
3.函数
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| def 函数名(参数): '''加注释''' 函数体 [return 函数的返回值] 调用方式:函数名(参数) 无参函数 有参函数: 位置参数(必须参数,就是必须要传入的参数,传入的参数也必须按照函数定义时的顺序,参数名=参数值) 默认参数(可以给参数赋予一个默认值,调用参数时如果参数有实际参数传入,则使用实际参数,如果没有实际参数传入就默认使用默认参数。如果同时存在默认参数和位置参数,则未知参数放前面,参数默认值必须是不可变类型,不要使用可变类型)、 命名关键字参数(用*号分隔命名关键字参数,*号后面的参数必须以 参数名=参数值的形式传入,如果有未知参数和默认参数,则命名关键字要求在位置参数之后,默认参数之前) 可变参数(参数前面加*,可变参数可以理解为将收集到的所有未知参数打包成元组,调用函数的时候可以传入多个元素,看成是元组的拆包) 关键字可变参数(**kwargs,他可以理解为将收集到的所有命名关键字参数打包成字典,调用函数的时候,看成字典的拆包) |
| 返回值 return 在需要返回的地方使用 return 关键字返回任意类型的数值和表达式,终止函数的执行。 一个函数中可以存在多个 return 语句,表示在不同条件下终止函数并返回对应的数值。 Return 在函数中不是必须的,没有 return 表示函数没有返回值。 |
| 匿名函数 lambda-lambda 表达式 如果函数定比价简单,并且只有参数比较简单时可以使用 lambda 表达式去表达函数。 lambda 参数:返回值表达式 Lambda 关键字必须存在, lambda 后面跟的就是参数,如果多个参数就用逗号隔开 |
4.模块和包
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 模块:就是一个以.py结尾的文件,模块中可以定义函数、类和变量,甚至是可执行代码 Python模块分为2种:内置模块和第三方模块 |