【Python】python期末复习笔记

简介: 【Python】python期末复习笔记

笔记视频来源——链接: link
由本人整理了一部分,记得比较仓促,若有错误,欢迎纠正,不说了,备考期末去啦。(•́︿•̀)

  1. 在python中,不需要先在前面定义数据的类型,在下面直接就可以使用
  2. 先定义后调用
  3. 变量是用于在内存中存放程序数据的容器
  4. 定义变量名字的时候,不能以数字开头,必需是字符串,或者字符只有是下划线可以,有空格也不行,只能连起来,大小写可以
  5. 删除变量类似于linux删除,例如 del name
  6. id()查询在内存中的编号
  7. 数据类型(对各种数据进行明确的划分):整数,浮点,字符串,布尔,列表,元组,字典,集合
  8. 定义数字类型不用加引号,加了引号就变成了字符串
  9. 浮点型——就是小数
  10. 字符串——加了引号的就是,单 双 三引号
  11. 多行字符串用多引号
  12. str——字符串,type()显示变量的类型
  13. xxx.upper返回xxx的大写,lower,
  14. name.center(50,"-")用---填充,把Name的东西放到中间
  15. 字符串的拼接——两个字符串用+可以连接在一起,*几就是多次打印,字符串只能跟字符串拼接,两边都得是字符串
  16. 布尔类型——ture false,真假,主要用来做逻辑判断,返回ture or false,
  17. 列表——就是一个大的字符串,但是不完全一样,例如在一个变量中存了几个人名,我想把其中的一个给拿出来,例如:name1,name2这样比较麻烦,容易轮换,需求——用一个变量将各个人名都存下来,存下来之后来得容易取出来,列表就是干这个的,
  18. 列表详解——name = [“sb”,“sb2”] 中括号,sb就是这个列表里面的一个元素,里面可以用单引号也可以用双引号,并且用逗号隔开
  19. 列表如何取?——通过下标——索引——索引下标从左到右从0开始
  20. inster——插入,name.inster(4,"sb")在第四个的前面插入sb
  21. 元素的添加有两种方式,插入inster,追加append,插入可以将一个元素插入一个列表的任意位置,追加就是将元素添加到列表的尾部。
  22. 删除元素类似于删除变量,del name[0]指定删除的位置,
  23. del是全局通用的删除方式
  24. remove是列表独有的删除方式,names.remove("sb"),删除列表中的sb,从左边开始寻找,删掉碰到的第一个sb,若在这个列表里面有多个sb,只会删除碰到的第一个sb,若找不到就会报错。
  25. 判断元素是否在这个列表中,“你要找的元素名称” in 该列表的名字, 有ture,无false.
  26. 常用运算符
  27. 算数运算符,重点:**2——该数的2次方,%求模——返回除法的余数,//——返回除法的整数部分,/——除
  28. 比较运算符,大于等于小于等于,单个等号是变量赋值,双等号是判断是否相等,!=不等于,>= ,<=,
  29. 赋值运算符,注意:自加,a += 1——a = a +1
  30. 逻辑运算符
  31. and允许把两个条件放在一起,两边都成立结果才会返回真ture(这个结果为真并且右边的结果也为真)
  32. or,式子中只有一个判断条件为真,结果就返回真,a >3 or b <3
  33. or和and连用,按情况而定,怎么放的,从左到右,依次运算,其中,or的优先级更高
  34. not——取反,结果 取反,例如:在本来结果可以返回ture的式子之前,加入一个not,现在式子返回的结果就是false
  35. 成员运算,(not 和 not in)判断一个元素在不在指定的序列之中,如果在,就返回ture,如果不在则返回,false,不能做数字的判断
  36. 读取用户输入,input("这里可以写你给用户的提示"),将用户输入的给存下来,username = input(“你叫什么”)
  37. 容易出错,n1 = input("Num1"),n2 = input("Num2"),print(n1n2),这样是打印不出来的,因为这里的n1和n2都是字符串,字符串是无法相乘的,这里 引出,input所输入的值都是字符串,无论你输入的是什么东西,这里要做一个事情,把你的字符串变成int,print(int (n1) *int (n2)),——相互转换,必须是长得像,从外面看不出来的那一种
  38. 格式化打印——打印好看的个人信息卡,拼在一起,{name}在程序内部引用变量,还得在整个字符串外面加入一个f,告诉解释器调用,python3的新特性

在这里插入图片描述

  1. 流程控制。单分支,双分支,缩进,多分支,几乎在所有语言中,流程控制的语法都是高度一致的
  2. 单分支——只有一条路(没有else),if(这里写条件公式):下面的子代码缩进
  3. 双分支——两条路,if,else,第一条路走不通了,就走第二条路,要不然走这个,要不然走那个,
  4. tab键= 四个空格,字代码必需要进行缩进,让你知道你每段代码依赖哪个条件,缩进——让你的解释器区分你的代码层级,同一级别的代码缩进必需一致,官方建议缩进为一个Tap键——四个空格
  5. 多分支——多条路,设置多个条件,满足哪个条件就走哪条路,elif(else if 的的简写),上面的条件不满足才会判断这个,依次往下推,如果上面的都不满足就走下面的else,

    注意这里面的int,复习上面所说的,从input中所输入的东西都是字符串,前面加入int将你所输入的字符串类型的数字转化为整数类型的。

在这里插入图片描述

  1. 最后结尾的else并不是必需的,一般我们会加上一个else.
  2. 如果只有分支的话,程序只能运行一次,一次结束之后我们就得重新启动程序,从这里就引入循环,
  3. for循环的语法,for a in range(10),a是临时变量,range(10)是一个从0到10的区间,也就是说,这里循环从0打印到10,每次循环i被赋的值都会变, 这里从0到10的区间,包括0,但是不包括10.或者这样书写 for i in range(5,10)
  4. 上面的range(10)就相当于一个列表,(用list(range(10) )展示出它是一个列表
  5. 例题:直接再上面的猜年龄例题上面加入.for i in range(3)只能猜三次。优化:把定义年龄的那个代码写到循环的外面,减少cpu计算的次数,把最后else中的print改成exit,可以实现猜对了就退出程序的效果
  6. f"{i}"把i的数调过来
  7. 循环套循环
  8. 在这里插入图片描述
  9. break,continue
  10. break结束当前循环,直接退出程勋
  11. continue结束当前循环,进入下一次循环
  12. while循环(又名死循环),循环次数是可以不定的,只条件满足就可以永远循环下去。
  13. 程序的死循环很好破,但人生的死循环往往很难破
  14. while 条件 #当条件为真的时候,条件就会一直进行
  15. 在这里插入图片描述

这是一个死循环

  1. while版猜年龄在这里插入图片描述

在这里插入图片描述

  1. end = ""不换行

    在这里插入图片描述

在小循环内不换行

  1. random——可以产生指定范围内的随机数,字符串等相当于从工具箱中拿出工具。import——导入,

在这里插入图片描述

  1. string模块在这里插入图片描述
  2. 数据类型,又见str(字符串),字符串是一个有序的字符的集合,用于在计算机中存储和表示文本信息,跟列表相似,同样有下标和索引,
  3. 可进行切片操作——列表的一个特性,字符村也具备这个功能
  4. 很多种切法
  5. s[3:6]顾头不顾尾,下标为3 的会切进来,下标为6的不包括
  6. 字符串是不可变的,与列表不同,字符串不行,定义好了就无法更改了。
  7. 在这里插入图片描述
  8. count插字符串中某个字符出现了多少次
  9. 字符查找返回-1代表没找到,如果知道了,就返回字符所在的字符串的索引
  10. 在这里插入图片描述
  11. l = ["列表" ] print("连接符".join(列表))
  12. a .replace("l","m",1)
  13. strip脱掉字符串两边的空格换行...
  14. split——分隔符
  15. 数据类型——又见列表,列表是有序的。可变的数据类型,可以增删改查
  16. extend合并列表
  17. inster可以直接嵌套列表
  18. 删除方法del,和pop删除,pop删除默认删除最后一个元素,并且返回被删除的数值。指定索引
  19. remove删除,指定元素名,从左边开始找到第一个
  20. clear清空,
  21. 查找操作符name.index("要查找的东西"),返回索引值,(建议先item in list看一看该元素在不在列表里面,然后再进行下标索引)
  22. 切片——像切面包一样,一下子在元素中取出多个值name[开始从哪里切:切到哪里结束],顾头不顾尾。开始的包括,结尾的不包括,开始是0的话,可以省略。从后面往前面切,省略结束的直接切到最后,并且包括最后一个值
  23. 倒着切的切法,依然要按着从走到右的顺序,只是索引是是负的,从后面往前数索引值从-1开始
  24. 步长(跳着切)——在这里插入图片描述

    names[0:1:这写步长]步长默认是1,2是隔一个选一个

    names[0::2]前面的0::相当于把整个列表包含了

  25. 排序和反转
  26. 排序 list.sort()默认是abcd。。。排序,小大写英文中文顺序(这里解释需要讲字符编码)
  27. list.reverse()反转列表
  28. 循环列表(就跟for循环一样(range就相当于一个列表)),
  29. 打印索引enumerate(list)——枚举在这里插入图片描述
  30. 这里提一句()——小括号类型是元组,他与列表一样,只不过不能改
  31. 字典,引子:将每个人的数据全部存到一起,可以用列表方式存放起来,但是不容易查询,比较麻烦,而且比较吃系统的性能,列表的局限性就体现出来了,
  32. dict定义{key1:value1,key2:value2}

    通过索引(不是列表里面的索引),在Python里面字典的索引叫做Key,通过key查到对应的value, key为索引,value为实实在在的数值。

  33. 字典特性:key-value结构,key(value中可以有数列)必须为不可变数据类型(字符串,数字),必需唯一,可存放任意多个value,可修改,可以不唯一,无序,查询速度快,且不受Dict的影响(学完hash再解释为什么快)
  34. 例如:dic = {"sb":[32.4000.ceo],"sb2":[33,5000,执行官 ]}
  35. 字典的好处:可以存贮复杂的信息,可以快速的查询
  36. 从字典中取值print(dict["sb"])这样就会将sb后面的value打印出来(value存储这sb的信息)
  37. key没有顺序,不像列表中的索引(从左到右从0开始)一样有顺序 +——+{补充:字典默认是无序的,但也变成有顺序的}
  38. 列表的操作——增删改查——循环嵌套
  39. 增加——直接dict(字典的名字)["key"] = “内容”,如果给同一个key重复添加value,前面输入的就会后面所输入的替换
  40. 字典删除del,pop,clear(清空)
  41. 查找操作,”sb” in dict查询是否存在(查询key),value无法直接查询到
  42. 字典只能一个一个的取,没法用切片方式取
  43. 字典.keys()返回你这个字典所有的key
  44. 字典.items(),把你这个字典变成一个大的列表
  45. 一对Key和value是转化出列表中的一个小列表。
  46. keys和.items都可以用for循环打印出来
  47. Print(k,v)可以分别的打印出来这两个变量
  48. 直接循环这个字典for k in dict:print(k,dic[k])把k和value一起取出来——推荐用这种,效率速度快
  49. 求长度:求出有几组kv len(字典)——全局函数,可以查询列表,字符串,字典
  50. 嵌套:字典[“里面那个字典”] = {里面这个字典的内容},往外面取的话就取两层
  51. 字节类型就是二进制格式,只不过为了易于理解和人类肉眼的计算,使用16进制表示而已
  52. 文件操作
  53. 文件操作流程——f = open(文件名称)
  54. f.write( ) read读操作 close保存并关闭
  55. f = open(“文件名称”,mode = “w”)
  56. 换行符\n
  57. Mode默认模式是r
  58. Read是读整个文件
  59. Readline读一行
  60. 模式a,追加在尾部
  61. 循环文件——文件的遍历

    for line in f在这里插入图片描述

    line = line.split()——把每一行分成一个小列表

  62. 注意类型的转换
  63. 二进制模式操作文件(题比较少),encoding= None——告诉你的解释器当前要打开的文件是什么编码,如果none,则用解释器默认编码,ntf-8
  64. none——什么也没有
  65. 编码不相符——无法解码
  66. 任何东西底层都是01010,二进制构成,
  67. 如何用二进制模式打开,mode操作符,后面加一个b,rb,wb
  68. python操作文件的其他功能在这里插入图片描述
  69. 刚打开文件是有一个光标在开头闪烁的,只是我们看不见
  70. seek——用来移动光标,占几个字节
  71. 函数编程
  72. 函数特点——减少重复代码,使程序变得可扩展,使程序变得易维护
  73. 函数的定义——一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用他的函数名就可以了
  74. 函数语法定义——def 函数名(参数)下面写要执行的内容

136.在这里插入图片描述

  1. 函数的各种参数
  2. 在这里插入图片描述
  3. 个人理解——定义函数的时候写的是形参,调用函数的时候写的是实参
  4. 形参就是占位符,先站一个位置,等待后面有实际的数值来传进来,形参的存货周期比较短暂,随着函数的结束而消失
  5. 实参就是实际的值,形参与实参一一对应
  6. 默认参数———一定要放到最后面在这里插入图片描述

    上面代码中的country的默认值就是CN
    当然也可以给默认参数指定值在这里插入图片描述

  7. 在这里插入图片描述
 这样写的话,解释器就蒙圈了,不知道对应的是哪个参数,少了个参数就报错。所以——————默认参数要放到最后面。

 上面的这个叫做位置参数,位置一一对应
  1. 关键参数(指定参数)

    在调用的时候把参数名加上,就叫做指定参数,加上了参数名,就不用按照顺序了,通过名字可以找到,就不用依赖位置了。

    注意——关键参数必需放到位置参数后面

在这里插入图片描述

  1. 同上——位置参数的优先级>关键参数(指定参数)
  2. 在这里插入图片描述
  3. 不允许多次赋值
  4. 非固定参数——若你的函数在定义的时候不确定用户想传入多少个参数,就可以使用非固定参数
  5. 在这里插入图片描述

    会把多传人的参数变成一个元组形式

    在这里插入图片描述

    传入的参数变成一个字典形式

在这里插入图片描述

  1. 函数返回值可以干什么——函数外部的代码想要获取函数的执行结果,就可以在函数里用return语句把结果返回

    在这里插入图片描述

  2. 返回值有很多选择,多个返回值的时候,以元组的形式
  3. 如果在函数中未在函数中指定return,那这个函数的返回值为none
  4. 局部变量与全局变量

154.在这里插入图片描述

  1. 上面的两个name不是一个东西,上面是全局变量,里面是局部变量
  2. 变量的查找顺序是局部变量大于局部变量
  3. 在函数里面是不能直接修改全局变量
  4. global name声明一个全局变量,在函数内部,但是不建议使用,会是你的程序变得复杂
  5. 往函数里面传字典,列表产生的现象
  6. 内置函数在这里插入图片描述
  7. abs——取绝对值
  8. all(要求全部为true)——检验一个列表里面的所有数值,如果都是true,这个all就返回true,有一个不是true,就会返回false(例子:现在疫情期间的登记检测,只要有一个人的核酸检测不合格,就会返回false,人们就会被隔离)
  9. bool——布尔值的判断,是否为真,是否为假(只要非0都是ture,0是false)
  10. any——类似于all,区别是any有一个是true就行
  11. chr——打印数字对应的ascii码值
  12. dict——生成一个空字典
  13. dir——打印当前程序在内存中的所有变量
  14. list——生成一个空列表
  15. locals——打印当前程序(作用域内)在内存中的变量名 and 变量值
  16. map——把一个列表里面的所有元素调用给函数使用,一次只能扔一个参数,所以那个函数只能定义一个参数
  17. 在这里插入图片描述

172.在这里插入图片描述

  1. max——求一个列表里面的最大值
  2. min——求一个列表里面的最小值
  3. sum——求和
  4. open——文件操作
  5. ord——传一个ascii字符进去,把他对应的值给他打印出来
  6. enumerate——放一个列表,将列表中的索引和他对应的值以元组的形式打印出来
  7. round——保留几位小数。round(3.1245.2)
  8. str——把数字列表等标变成字符串
  9. type——看数据的类型
  10. 一切皆对象——一切都是面向对象
  11. zip——将两个列表配对
  12. filter——将一个列表里面的每一个值交给compare来运算,返回为真的保留,假的不要

在这里插入图片描述

  1. 模块——就是一个个的python文件
  2. 使用模块有什么好处——提高了代码的可维护性,避免函数名和变量名冲突
  3. 模块的分类:内置标准模块(标准库)会随着解释器安装-第三方开源模块-自定义模块
  4. 导入import在这里插入图片描述
  5. os模块——与操作系统进行交互的一个模块
  6. 自定义模块—

在这里插入图片描述

  1. 随便写一个文件就能是一个模块
  2. 第三方开源模块——
  3. 包的使用——一个包其实就是一个文件夹
  4. os模块
  5. 在这里插入图片描述

在这里插入图片描述

  1. sys.path——获取系统环境变量
  2. sys.argv—— 获取脚本参数
  3. random——随机数模块

在这里插入图片描述

相关文章
|
3天前
|
存储 设计模式 算法
|
3月前
|
Python
小笔记:Python 使用字符串调用函数
小笔记:Python 使用字符串调用函数
41 0
|
3月前
|
JavaScript 前端开发 测试技术
[小笔记]TypeScript/JavaScript模拟Python中的Range函数
[小笔记]TypeScript/JavaScript模拟Python中的Range函数
27 0
|
3天前
|
存储 索引 Python
|
3月前
|
JavaScript 前端开发 测试技术
[小笔记]TypeScript/JavaScript模拟Python中的zip(不使用map)
[小笔记]TypeScript/JavaScript模拟Python中的zip(不使用map)
19 0
|
3月前
|
C# Python
C# 笔记3 - 重载一系列像python那样的print()方法
C# 笔记3 - 重载一系列像python那样的print()方法
29 1
|
3月前
|
关系型数据库 MySQL 数据库
MySQL命令笔记+Python案例
MySQL命令笔记+Python案例
47 0
|
3月前
|
存储 Python
Python:核心知识点整理大全16-笔记-2
Python:核心知识点整理大全16-笔记
18 0
|
3月前
|
存储 Python
Python:核心知识点整理大全16-笔记-1
Python:核心知识点整理大全16-笔记
27 0
|
3月前
|
算法 Python 容器
【Python数据结构与算法】—— 搜索算法 | 期末复习不挂科系列
【Python数据结构与算法】—— 搜索算法 | 期末复习不挂科系列
32 0