第一张

  1. 1)变量
  2. 内存空间的表达式
  3. 命名要遵守规则
  4. 赋值使用 =
  5. 2)类型转换
  6. str()将其他类型转成字符窜
  7. int() 将其他类型转成整数
  8. float()将其他类型转成浮点数
  9. 3)数据类型
  10. 整数类型 int
  11. 浮点数类型 float
  12. 布尔类型 True/False
  13. 字符窜类型 str
  14. 4)注释
  15. 单行注释 #
  16. 多行注释 ''' 或者 """
  17. 中文编码声明 #coding:utf-8

第二章

  1. 1)程序的三种组织结构
  2. 顺序结构
  3. 选择结构
  4. 循环结构
  5. 2)选择结构
  6. 单分支结构
  7. 双分支结构
  8. 多分支结构
  9. 嵌套if
  10. 条件表达式
  11. 3)对象布尔值
  12. False
  13. False
  14. 数值0
  15. None
  16. 空字符窜
  17. 空列表、空元祖、空字典、空集合
  18. True

第三章

  1. 1)内置函数range
  2. 生成整数数列
  3. 起始值默认为0
  4. 步长默认为1
  5. 2)循环结构
  6. while
  7. 用于次数不固定的循环
  8. 初始条件不成立一次都不执行
  9. for-in
  10. 用于遍历可迭代对象
  11. 3)break continue else
  12. break
  13. 退出当前循环结构
  14. continue
  15. 结束当前循环进入下一次循环
  16. else
  17. if..else
  18. while..else
  19. for..else
  20. 4)嵌套循环
  21. 外层循环执行一次内层循环执行完整一轮
  22. whilefor-in 互相嵌套
  23. 示例:
  24. #乘法口诀表
  25. for i in range(1,10):
  26. for j in range(1,i+1):
  27. print(i,'*',j,'=',i*j,end='\t')
  28. print()
  29. #while 循环 1-100 偶数和
  30. sum=0
  31. a=1
  32. while a<=100:
  33. if a%2==0:
  34. sum+=a
  35. a+=1
  36. print(sum)
  37. #for 循环1-100偶数和
  38. zong=0
  39. for i in range(1,101):
  40. if i%2==0:
  41. zong+=i
  42. print(zong)

第四章

  1. 1)列表
  2. 创建
  3. 使用中括号
  4. 内置函数list()
  5. 列表生成式
  6. 查询
  7. 查询元素索引
  8. 获取单个元素
  9. 获取多个元素
  10. in/not in
  11. 增删改

  12. append()
  13. extend()
  14. insert()
  15. 切片

  16. remove()
  17. pop()
  18. clear()
  19. del
  20. 切片

  21. 索引
  22. 切片
  23. 排序
  24. 方法sort()
  25. 内置函数sorted()
  26. 2)字典
  27. 字典的创建
  28. 使用{}花括号
  29. 内置函数dict()
  30. 字典生成式
  31. 常用操作
  32. 获取value
  33. 字典名[key]
  34. 字典名.get(key)
  35. 删除key-value
  36. del 字典名[key]
  37. 修改/新增
  38. 字典名[key]=value
  39. in/not in
  40. 3)元祖
  41. 创建元组
  42. 使用()小括号
  43. 内置函数tuple()
  44. 元组的遍历
  45. for--in
  46. 不可变序列
  47. 4)集合
  48. 创建集合
  49. 使用{}花括号
  50. 内置函数set()
  51. 集合生成式
  52. 集合的遍历
  53. for--in
  54. 新增
  55. add()
  56. update()
  57. 删除
  58. remove()
  59. discard()
  60. pop()
  61. clear()
  62. 可变序列
  63. 5
  64. 数控结构 是否可变 是否重复 是否有序 定义符号
  65. 列表(list) 可变 可重复 有序 []
  66. 元组(tuple) 不可变 可重复 有序 ()
  67. 字典(dict) 可变 key 不可重复 无序 {key:value}
  68. value 可重复
  69. 集合(set) 可变 不可重复 无序 {}

第五章

  1. 字符窜
  2. 字符窜的驻留
  3. 驻留的几种情况
  4. 驻留的优点
  5. 强制驻留的方法
  6. 常用方法
  7. 查询的方法
  8. index(),rindex()
  9. find(),rfind()
  10. 大小写转换
  11. upper(),lower()
  12. 内容对其
  13. center()
  14. 字符窜的劈分
  15. split()
  16. 字符窜判断
  17. isdecimal()
  18. 字符窜的替换
  19. replace()
  20. 字符窜的合并
  21. join()
  22. 字符窜的比较
  23. >,<,>=,<=,==,!=
  24. 字符窜编码
  25. %,format()

第六章

  1. 函数:
  2. 函数的定义与调用
  3. 函数使用def 定义
  4. 函数定义的形参
  5. * 定义个数可变的位置形参
  6. ** 定义个数可变的关键字形参
  7. 定义默认值参数
  8. 函数调用的实参
  9. 位置实参
  10. 关键字实参
  11. 函数可以多返回值
  12. 变量的作用域
  13. 局部变量
  14. 全局变量
  15. 递归函数
  16. 函数本身调用本身
  17. 递归的组成部分
  18. 调用条件
  19. 终止条件
  20. 重要知识点示例:
  21. 1)个数可变的位置参数
  22. 结果为一个元祖
  23. def fun(*args):
  24. print(args)
  25. fun(1,2)
  26. fun(1,2,3,4,5)
  27. 结果:
  28. (1, 2)
  29. (1,2,3,4,5)
  30. 2)个数可变的关键字形参
  31. 结果为一个字典
  32. def fun1(**args):
  33. print(args)
  34. fun1(a=10)
  35. fun1(a=10,b=20,c=30)
  36. 结果:
  37. {'a': 10}
  38. {'a': 10, 'b': 20, 'c': 30}
  39. 3)在一个函数定义过程中,既有个数可变的关键字形参,也有个数可变的位置形参,要求,个数可变的位置形参,放在个数可变的关键字形参之前。
  40. def fun1(*args1,**args2):
  41. print(args1,args2)
  42. fun1(1,2,3,a=10,b=20,c=30)
  43. (1, 2, 3) {'a': 10, 'b': 20, 'c': 30}
  44. 4)函数内部定义的变量,局部变量,局部变量使用global声明,这个变量实际上就变成了全局变量
  45. def func5():
  46. global age
  47. age=20
  48. print(age)
  49. func5()
  50. print(age)

第七章

  1. Bug常见类型
  2. 粗心导致的语法错误
  3. 自查宝典
  4. 知识点不熟悉
  5. 连练练
  6. 思路不清
  7. print()语句
  8. 使用 # 注释
  9. 被动掉坑
  10. try...except
  11. 异常处理机制
  12. try...except
  13. try...except...except
  14. try...except...else
  15. try...except...else...finally
  16. traceback模块打印异常信息
  17. 1try except 处理示例:
  18. try:
  19. a = int(input('请输入第一个整数')) #可能出现异常的代码
  20. b = int(input('请输入第二个整数'))
  21. result = a / b
  22. except BaseException as e: #将异常起了一个别名为 e
  23. print('出错了',e)
  24. else: #else except 二者执行其中一个,如果遇到异常则执行异常,如果是正常就执行else内容
  25. print('计算结果为:',result)
  26. finally: #无论是否异常,总会被执行的代码
  27. print('感谢使用')
  28. 请输入第一个整数:a
  29. 出错了 invalid literal for int() with base 10: 'a'
  30. 感谢使用
  31. 第二种情况,输入正常,则执行else 内容
  32. 请输入第一个整数:10
  33. 请输入第二个整数:2
  34. 计算结果为: 5.0
  35. 感谢使用

第八章

  1. 编程思想
  2. 面向过程:具体
  3. 面向对象:宏观
  4. 类对象
  5. 类属性
  6. 类方法
  7. 实例方法
  8. 静态方法
  9. 实例对象
  10. 类名(),创建实例对象c
  11. 动态绑定属性
  12. 动态绑定方法
  13. 类对象拥有:

  14. id
  15. type
  16. valuve
  17. 1
  18. 类的组成
  19. 类属性:直接写在类里面方法之外的变量,称为类属性,访问类属性,print(Student.native_place)
  20. 实例方法:在类之外定义的称为函数,在类之内定义的称为方法 ,必须创建类的对象才能调用该方法,stu1=Student('张三',20) stu1.eat() 即对象名.eat()调用
  21. 类方法:@classmethod ,使用类名直接访问的方法, print(Student.cm())
  22. 静态方法:@staticmethod,使用类名直接访问的方法,print(Student.sm())
  23. 注意:
  24. 一个Student 类可以创建N多个Student类的实例对象,每个实体对象的属性值不同(即实例属性不同)
  25. 示例:
  26. class Student: #Student 为类的名称(类名)由一个或多个单词组成,每个单词的首字母大写,其余小写
  27. native_pace='邯郸' #直接写在类里面的变量,称为类属性
  28. def __init__(self,name,age): #初始化方法
  29. self.name=name #self.name 称为实例属性,进行了一个赋值的操作,将局部变量的name 的值赋给实例属性
  30. self.age=age
  31. #实例方法,在类之内定义的称为方法必须有self
  32. def eat(self):
  33. print('学生在吃饭')
  34. #静态方法
  35. @staticmethod
  36. def method():
  37. print('我使用了staticmethod 进行修饰,所以我是静态方法')
  38. #类方法,必须有 cls
  39. @classmethod
  40. def cm(cls):
  41. print('我是类方法,因为我使用了 classmethod 进行修饰')
  42. #在类之外定义的称为函数,在类之内定义的称为方法
  43. def drink():
  44. print('喝水')
  45. #创建Student 类的对象,即类的对象的创建又称为类的实例化
  46. stu1=Student('张三',20)
  47. stu1.eat()
  48. #调用实例属性
  49. print(stu1.age)
  50. print(stu1.name)
  51. print('xxxxxxxxxxxxxxxxxxxxxx')
  52. Student.eat(stu1) #stu1.eat() 与Student.eat(stu1) 功能相同,都是调用Student 中的eat 方法;
  53. #类名.方法名(类的对象) --> 类的对象实际上就是方法定义处的 self
  54. #
  55. 即类的对象的创建又称为类的实例化
  56. 2)动态绑定实例属性,必须在创建实例对象之后进行绑定
  57. stu5=Student('倩倩',18)
  58. stu6=Student('果果',19)
  59. stu6.gender='女'
  60. print(stu5.name,stu5.age)
  61. print(stu6.name,stu6.age,stu6.gender)
  62. 3)动态绑定实例方法,必须在创建实例对象之后进行绑定,当绑定在实例对象之后就叫做方法了
  63. def show():
  64. print('定义在类之外的,称为函数')
  65. stu5.show=show
  66. stu5.show()

第九章

  1. 面向对象的三大特征
  2. 封装
  3. 继承
  4. 多继承
  5. 方法重写
  6. 多态
  7. 动态语言
  8. 关注对象的行为
  9. 静态语言
  10. 继承
  11. 方法重写
  12. 父类引用指向子类对象
  13. object
  14. 所有类的父类
  15. __new__()创建对象
  16. __init__()初始化对象
  17. __str__()对象的描述
  18. 1.封装
  19. 2.继承
  20. 3.方法重写
  21. 4.object
  22. 5.多态
  23. 6.特殊方法和特殊属性
  24. 1)封装
  25. 将实例属性和实例方法包装到类对象中,在方法内部对属性进行操作,在类对象的外部调用
  26. class Car:
  27. def __init__(self,brand):
  28. self.brand=brand
  29. def Start(self):
  30. print(self.brand,'is start')
  31. car=Car('宋Pro')
  32. car.Start()
  33. print(car.brand)
  34. 结果:
  35. Pro is start
  36. Pro
  37. #不希望在外部被直接调用实例属性
  38. class Student:
  39. def __init__(self,name,age):
  40. self.name=name
  41. self.__age=age
  42. def show(self):
  43. print(self.name,self.__age)
  44. stu1=Student('李明',20)
  45. stu1.show()
  46. print('----------------------------------------------')
  47. print(stu1.name)
  48. # print(dir(stu1))
  49. print(stu1._Student__age) #可以在外部直接调用变量
  50. # print(stu1.__age)
  51. 李明 20
  52. ----------------------------------------------
  53. 李明
  54. 20
  55. 1.1)封装-私有属性与私有方法,不希望外部直接调用使用,而是用于内部调用使用
  56. class Phone(object):
  57. __current_voltage = 0
  58. def __keep_single_core(self):
  59. print("让CPU 以单核模式运行")
  60. def call_by_5g(self):
  61. if self.__current_voltage >= 1:
  62. print("5g通话已开启")
  63. else:
  64. self.__keep_single_core()
  65. print("电量不足,开启单核模式运行了")
  66. phone = Phone()
  67. phone.call_by_5g()
  68. #输出结果
  69. CPU 以单核模式运行
  70. 电量不足,开启单核模式运行了
  71. 2)继承与多继承
  72. 默认继承 object
  73. class Person(object): #Person 继承object 类,不写默认是object
  74. def __init__(self,name,age):
  75. self.name=name
  76. self.age=age
  77. def info(self):
  78. print(self.name,self.age)
  79. class Student(Person): #继承Person类
  80. def __init__(self,name,age,stu_nomber): #自身初始化函数,其中name,age必须与父类相同,stu_nomber 是自身独有的属性
  81. super().__init__(name,age) #继承父类 Person
  82. self.stu_nomber=stu_nomber
  83. class Teacher(Person):
  84. def __init__(self,name,age,teachofyer):
  85. super().__init__(name,age)
  86. self.teachofyer=teachofyer
  87. stu1=Student('zhangsan',21,10001)
  88. teacher1=Teacher('lisi',32,13)
  89. stu1.info()
  90. teacher1.info()
  91. 结果:
  92. zhangsan 21
  93. lisi 32
  94. 3)方法重写
  95. 如果子类对继承自父类的某个属性或方法不满意,可以在子类中对其(方法体)进行重新编写
  96. 子类重写后的方法中可以通过super().xxx()调用父类中被重写的方法,例如super().info()
  97. def info(self): #info 方法重写
  98. super().info() #调用父类方法
  99. print(self.teachofyer)
  100. 示例如下:
  101. class Person(object): #Person 继承object 类,不写默认是object
  102. def __init__(self,name,age):
  103. self.name=name
  104. self.age=age
  105. def info(self):
  106. print(self.name,self.age)
  107. class Student(Person): #继承Person类
  108. def __init__(self,name,age,stu_nomber): #自身初始化函数,其中name,age必须与父类相同,stu_nomber 是自身独有的属性
  109. super().__init__(name,age) #继承父类 Person
  110. self.stu_nomber=stu_nomber
  111. def info(self): #info 方法重写
  112. super().info() #调用父类方法
  113. print(self.stu_nomber)
  114. class Teacher(Person):
  115. def __init__(self,name,age,teachofyer):
  116. super().__init__(name,age)
  117. self.teachofyer=teachofyer
  118. def info(self): #info 方法重写
  119. super().info() #调用父类方法
  120. print(self.teachofyer)
  121. stu1=Student('zhangsan',21,10001)
  122. teacher1=Teacher('lisi',32,13)
  123. stu1.info()
  124. print('---------------------------------')
  125. teacher1.info()
  126. 结果:
  127. zhangsan 21
  128. 10001
  129. ---------------------------------
  130. lisi 32
  131. 13
  132. #方法重写示例2:
  133. class Car(object): #定义的类名,默认继承object 类
  134. def __init__(self,type,number): #类初始化方法,包含self.自身的属性
  135. self.type=type #类实例属性
  136. self.number=number
  137. def start(self): #类方法
  138. print('我是父类---Start----------------')
  139. def stop(self): #类方法
  140. print('我是父类---Stop---------------')
  141. class TaxiCar(Car): #继承Car 类
  142. def __init__(self,type,number,company): #类实例的初始化方法,新增加 company 属性
  143. super().__init__(type,number) #调用父类方法,就是免去了前面两个类实例属性的赋值
  144. self.company=company #新类实例的属性赋值
  145. def start(self): #类方法进行重写
  146. super().start() #类方法调用父类,先输出父类内容
  147. print('我是%s的,我的车牌号码是 %s,您要去哪里?' %(self.company,self.number)) #方法重写内容
  148. def stop(self): #类方法进行重写
  149. print('目的地到了,请您付费下车,欢迎再次乘坐') #直接重写,不调用父类
  150. if __name__ == '__main__':
  151. taxicar=TaxiCar('上汽大众','京A88888','长城出租车公司') #给类传参
  152. taxicar.start()
  153. taxicar.stop()
  154. 输出内容:
  155. 我是父类---Start----------------
  156. 我是长城出租车公司的,我的车牌号码是 A88888,您要去哪里?
  157. 目的地到了,请您付费下车,欢迎再次乘坐

第十章

  1. 模块与包
  2. 模块
  3. 避免函数名/变量名重名
  4. 自定义模块
  5. 一个.py文件称为一个模块
  6. 第三方模块
  7. 安装:pip install 模块名
  8. 使用:from ..import 模块名

  9. 避免模块名重名
  10. 包含__init__.py 文件

第十一章

  1. 编码格式
  2. 内存为unicode
  3. .py文件为utf-8
  4. 文件操作

  5. writelines()
  6. write()

  7. read()
  8. readline()
  9. readlines()
  10. 打开模式
  11. 只读r
  12. 只写w
  13. 追加a
  14. 二进制是b
  15. 目录操作
  16. os模块
  17. os.path
  18. 读写模式
  19. 1)文件读 r,文件指针在文件的开头
  20. file=open('a.txt','r',encoding='utf-8')
  21. print(file.readlines()) #readlines 输出是列表
  22. file.close()
  23. 结果:
  24. ['中国\n', '美丽']
  25. 2)文件写 w 以只写模式打开文件,如果文件不存在则创建,如果文件存在,则覆盖原有内容,文件指针在文件的开头
  26. file=open('b.txt','w',encoding='utf-8')
  27. file.write('Python22')
  28. file.close()
  29. 3)文件追加 a ,以追加模式打开文件,如果文件不存在则创建,文件指针在文件开头,如果文件存在,则在文件末尾追加内容,文件指针在文件末尾
  30. file=open('b.txt','a',encoding='utf-8')
  31. file.write('Python33')
  32. file.close()
  33. b.txt 结果:
  34. Python22Python33Python33
  35. 4)以二进制方式打开文件,不能单独使用,需要与其他模式一起使用,rb,或者 wb
  36. src_file=open('liang.jpg','rb')
  37. target_file=open('copyliang.jpg','wb')
  38. target_file.write(src_file.read())
  39. target_file.close()
  40. src_file.close()
  41. 5)以读写方式打开文件,不能单独使用,需要与其他模式一起使用,a+
  42. 文件对象的常用方法
  43. 1)read([size]) 从文件中读取size 个字节或字符的内容返回,若省略[size],则读取到文件末尾,即一次读取文件所有内容
  44. file=open('a.txt','r',encoding='utf-8')
  45. print(file.read())
  46. file.close()
  47. 结果:
  48. 中国
  49. 美丽
  50. file=open('a.txt','r',encoding='utf-8')
  51. print(file.read(2))
  52. file.close()
  53. 结果:
  54. 中国
  55. 2readline(),从文本文件中读取一行内容
  56. file=open('a.txt','r',encoding='utf-8')
  57. print(file.readline())
  58. file.close()
  59. 结果:
  60. 中国
  61. 3readlines(),把文本文件中每一行都作为独立的字符串对象,并将这些对象放入列表返回
  62. file=open('a.txt','r',encoding='utf-8')
  63. print(file.readlines())
  64. file.close()
  65. 结果:
  66. ['中国\n', '美丽']
  67. 4write(str) 将字符串str 内容写入文件
  68. file=open('c.txt','a',encoding='utf-8')
  69. file.write('hello')
  70. file.close()
  71. c.txt 结果:
  72. hello
  73. 5writelines(s_list) 将字符串列表 s_list 写入文本文件,不添加换行符
  74. file=open('c.txt','a',encoding='utf-8')
  75. lst=['a','b','c']
  76. file.writelines(lst)
  77. file.close()
  78. c.txt 结果:
  79. helloabc
  80. 6)seek(offset[,whence]) 把文件指针移动到新的位置,offset 表示相对于whence 的位置:
  81. offset:为正往结束方向移动,为负往开始方向移动
  82. whence 不同的值代表不同含义:
  83. 0:从文件头开始计算(默认值)
  84. 1:从当前位置开始计算
  85. 2:从文件末尾开始计算
  86. 注释:一个中文两个字节
  87. a.txt内容:
  88. pythongojava
  89. file=open('a.txt','r',encoding='utf-8')
  90. file.seek(2)
  91. print(file.read())
  92. print(file.tell())
  93. file.close()
  94. 结果:
  95. thongojava
  96. 12
  97. 7)tell() 返回文件指针的当前位置
  98. print(file.tell())
  99. 8flush()把缓冲区的内容写入文件,但不关闭文件
  100. 9close() 把缓冲区的内容写入文件,同时关闭文件,释放文件对象相关资源
  101. file=open('d.txt','a',encoding='utf-8')
  102. file.write('hello')
  103. file.flush()
  104. file.write('world')
  105. file.close()
  106. d.txt结果:
  107. helloworld
  108. 如果将flush close 调换位置,则报错:
  109. file=open('e.txt','a',encoding='utf-8')
  110. file.write('hello')
  111. file.close()
  112. file.write('world')
  113. file.flush()
  114. 报错:
  115. ValueError: I/O operation on closed file.
  116. with 语句(上下文管理器)
  117. - with 语句可以自动管理上下文资源,不论什么原因跳出with 块,都能确保文件正确的关闭,一次来打到释放资源的目的
  118. with open('liang.jpg','rb') as src_file:
  119. with open('liangliang.jpg','wb') as target_file:
  120. target_file.write(src_file.read())
  121. 旧代码:
  122. src_file=open('liang.jpg','rb')
  123. target_file=open('copyliang.jpg','wb')
  124. target_file.write(src_file.read())
  125. target_file.close()
  126. src_file.close()
  127. OS 模块操作目录相关函数
  128. os.system('calc.exe') 调用系统计算机
  129. getcmd() 返回当前的工作目录
  130. listdir(path) 返回指定路径下的文件和目录信息 print(os.listdir('../0330'))
  131. mkdir(path,[,mode]) 创建目录 os.mkdir('aaa')
  132. makedirs(path1/path2/...[,mode])创建多级目录 os.makedirs('A/b/C')
  133. rmdir(path)删除目录 os.rmdir('aaa')
  134. removedirs(path1/path2.....) 删除多级目录 os.removedirs('A/b/C')
  135. chdir(path) path 设置为当前工作目录
  136. OS.path 模块操作目录相关函数
  137. obspath(path) 用于获取文件或目录的绝对路径
  138. exists(path) 用于判断文件或目录是否存在,如果存在返回True,否则返回False
  139. join(path,name) 将目录与目录或者文件名拼接起来
  140. splitext() 分离文件名和扩展名
  141. basename(path) 从一个目录中提取文件名
  142. dirname(path) 从一个路径中提取文件路径,不包括文件名
  143. isdir(path) 用于判断是否为路径
  144. import os.path
  145. print(os.path.abspath('demon10.py'))
  146. print(os.path.exists('demon04.py'),os.path.exists('demon044.py'))
  147. print(os.path.join('E:\\Python','demon10.py'))
  148. print(os.path.split('E:\\Django\\python\\a.py'))
  149. print(os.path.splitext('demon10.py'))
  150. print(os.path.basename('E:\\Django\\python\\a.py'))
  151. print(os.path.dirname('E:\\Django\\python\\a.py'))
  152. 示例:
  153. 1.#获取指定目录下的所有 py 文件
  154. import os
  155. path=os.getcwd()
  156. lst=os.listdir(path)
  157. for file in lst:
  158. if file.endswith('.py'): #获取以 .py 结尾的文件
  159. print(file)
  160. 2.循环遍历嵌套目录下所有文件
  161. import os
  162. path=os.getcwd()
  163. lst_files=os.walk(path)
  164. for mydirpath,mydirname,myfilename in lst_files:
  165. # print(mydirpath)
  166. # print(mydirname)
  167. # print(myfilename)
  168. # for dir in mydirname:
  169. # print(os.path.join(mydirpath,dir))
  170. for file in myfilename:
  171. print(os.path.join(mydirpath,file))
  172. print('------------------------------------')

日常问题处理

  1. 重点关注:
  2. 一、列表、字符串、文本文件存入修改操作
  3. 1) 列表中存放字典,列表可以直接append 添加字典内容,student_list列表中的每一项都是字典
  4. student_list=[]
  5. student={'id':id,'name':name,'english':english,'python':python,'java':java}
  6. student_list.append(student)
  7. 结果如下:[{'id': '1010', 'name': 'jh', 'english': 21, 'python': 21, 'java': 23}, {'id': '1011', 'name': 'jk', 'english': 23, 'python': 43, 'java': 223}]
  8. 2) 文本txt 文件存放列表中的字典内容,需要先将列表中的每一个字典转换为字符串存放,否则会报错: TypeError: write() argument must be str, not dict,如下:
  9. stu_txt=open(filename,'a',encoding='utf-8')
  10. for item in student_list:
  11. stu_txt.write(str(item)+'\n')
  12. stu_txt.close()
  13. 3) 删除文本中的某一行,student_old 列表中的每一项字典都是字符串类型,操作需要将字符串类型转化为字典
  14. student_id=input('请输入要删除的学生id:')
  15. with open(filename,'r',encoding='utf-8') as file:
  16. student_old=file.readlines()
  17. student_old 列表内容如下,可以查看到文本里面存放的是字符串类型
  18. ["{'id': '1003', 'name': 'kubn', 'english': 123, 'python': 45, 'java': 67}\n", "{'id': '1004', 'name': 'bhs', 'english': 3, 'python': 4, 'java': 6}\n"]
  19. d={}
  20. with open(filename,'w',encoding='utf-8') as wfile:
  21. for item in student_old:
  22. d=dict(eval(item)) #将字符串转换为字典
  23. if d['id']!=student_id:
  24. wfile.write(str(d)+'\n') #存放时候再将字典转换为字符串进行存放
  25. 二、格式化输出
  26. #定义标题显示格式
  27. format_title='{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^8}\t'
  28. print(format_title.format('ID','姓名','英语成绩','Python 成绩','Java成绩','总成绩'))
  29. #定义内容的显示格式
  30. format_data='{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^8}\t'
  31. for item in student_new:
  32. print(format_data.format(item.get('id'),
  33. item.get('name'),
  34. item.get('english'),
  35. item.get('python'),
  36. item.get('java'),
  37. item.get('总成绩')
  38. ))
  39. 输出结果:
  40. ID 姓名 英语成绩 Python 成绩 Java成绩 总成绩
  41. 101 xin 21 22 23 66
  42. 三、匿名函数用作数据排序展示,(reverse=True 降序,reverse=False 升序)
  43. student_new=[{'id': '103', 'name': 'ki', 'english': 11, 'python': 11, 'java': 11, '总成绩': 33}, {'id': '101', 'name': 'xin', 'english': 21, 'python': 22, 'java': 23, '总成绩': 66}]
  44. student_new.sort(key=lambda x: int(x['java']), reverse=True)

python 知识点总结的更多相关文章

  1. python知识点, float不能用 != 判断

    python知识点链接:https://github.com/taizilongxu/interview_python 搜索:python最佳事件 书单:http://lucida.me/blog/d ...

  2. python 知识点补充

    python 知识点补充 简明 python 教程 r 或 R 来指定一个 原始(Raw) 字符串 Python 是强(Strongly)面向对象的,因为所有的一切都是对象, 包括数字.字符串与 函数 ...

  3. Python知识点汇总

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...

  4. 零基础Python知识点回顾(一)

    如果你是小白,建议只要安装官网的python-3.7.0-amd64.exe 然后在电脑cmd命令提示符  输入检查是否已经安装pip,一般安装了python都会有的. >pip         ...

  5. ViewModel中C# Property自动添加OnPropertyChanged处理的小工具, 以及相应Python知识点

    在做WPFMVVM中经常会遇到一些Model.ViewModel的属性添加添加私有字段和更改通知方法来支持Binding. 比如把: public class Test {      public s ...

  6. Python知识点复习

    一.列表1.创建一个文件birthday.py,假设你要祝某人生日快乐!首先将年龄存储在变量age中,将姓名存储在变量name中,让程序输出类似“阿明,23岁生日快乐!” 例如:假设你要祝某人生日快乐 ...

  7. python知识点总结以及15道题的解析

    先看知识点总结 一.序列操作符x in s 如果x是列表s的元素,返回True,否则Falses + t 连接两个序列s和ts*n或者n*s 将序列s复制n次s[i] 返回s中第i元素s[i:j]或s ...

  8. python知识点总结

    此知识要点,是根据学习廖雪峰phthon3.0教程总结的,所以结构基本和这个教程的结构相同. 背景知识 python是什么?(1)python是一门编程语言,意味着可以用python编写程序,完成一定 ...

  9. python知识点记录(一):

    1.如何使print输出不换行: 在print语句末尾加上一个英文逗号. 2.安装第三方模块时,用pip和easy_install是一样的.下载一个setuptools.exe安装好就有easy_in ...

  10. python知识点 07-11

    python引用变量的顺序: 当前作用域局部变量->外层作用域变量->当前模块中的全局变量->python内置变量 python的 nonlocal关键字用来在函数或其他作用域中使用 ...

随机推荐

  1. Windows 设置当前路径 临时环境变量 查看、修改、删除与添加

    需求 有些程序依赖的Python版本不同,安装了Python2.7和Python3.10(3.x没有向下兼容),需要设置当前路径的 python 版本(指定使用2或3). 也不止Python,类似的情 ...

  2. yum源更换为阿里云源

    #首先备份/etc/yum.repos.d/CentOS-Base.repocp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-B ...

  3. 八、常用Api

    Object 深拷贝和浅拷贝 Objects 包装类 StringBuilder StringJoin Math System RuntimeBigDecimal Date SImpleDateFor ...

  4. MTSC2021上海站PPT 分享

  5. 一篇教会你写90%的shell脚本

    原文链接  : https://zhuanlan.zhihu.com/p/264346586 shell是外壳的意思,就是操作系统的外壳.我们可以通过shell命令来操作和控制操作系统,比如Linux ...

  6. NLog日志 富文本编辑器

    NLog日志 NLog是什么 NLog是一个基于.NET平台编写的类库,我们可以使用NLog在应用程序中添加极为完善的跟踪调试代码.NLog是一个简单灵活的.NET日志记录类库.通过使用NLog,我们 ...

  7. 使用 WSDL 指定的标准 SOAP 消息格式

    为 XML 文档(定义 Web 服务)定义架构的行业标准 Web 服务描述语言 (WSDL) 提供了两个主要的 SOAP 格式设置选项.这两个选项均在 XML 元素中指定,而不在主 WSDL 命名空间 ...

  8. 软件工程日报一——Andriod的安装与配置

    建民老师给我们布置了一个编写记事本app的任务,因此需要我们下载andriod studio,下面是我的下载过程 在下载andriod studio之前,需要我们配置Java环境 进入控制面板,输入 ...

  9. 【ubuntu20 】主机,虚拟机ubuntu,开发板三者的ping通

    1.主机有线网卡设为静态ip,步骤如图 2.开发板运行的linux设为静态IP 修改文件 vi  /etc/network/interfaces # Configure Loopback auto l ...

  10. android判断是否连接wifi跟网络状态的判断及wifi信号强度的方法

    场景:android判断是否连接wifi跟网络状态的判断 android判断是否连接wifi和网络状态的判断 // 是否连接WIFI public static boolean isWifiConne ...