目录

96-101 Bug

102 常见异类类型

103 traceback模块

104 pycharm调试

105 编程思想

106 类与对象

107 类的创建

108 对象的创建

109 类属性、类方法、静态方法

110 动态绑定属性和方法

110 面向对象的三大特征-封装

111 面向对象的三大特征-继承

112 方法重写

113 object类

114 面向对象的三大特征-多态

115 116 特殊方法和特殊属性

117 _new_ / _init_

118 类的赋值与浅拷贝

119深拷贝

120 模块化编程的好处

121 模块的导入

122 以主程序方式运行

123 python中的包

124 常用的内容模块

125 第三方模块的安装与使用

126 编码格式的介绍

127 文件读写的原理

128 常用的文件打开模式

129 文件对象的常用方法

130 with语句

131 os模块的常用函数

132 os.path模块的常用方法


96-101 Bug

lst=[{'rating':[9.7,206287],'id':'129052','type':['剧情','犯罪'],'title':'肖申克的救赎','actors':['蒂姆.罗宾斯','摩根.弗里曼']}]name=input('请输入你要查询的演员')
for item in lst:#遍历列表:{}  item是一个又一个的字典act_lst = item['actors']for actor in act_lst:if name in actor:print(name,'出演了',item['title'])# print(act_lst)# for movie in item: #遍历字典,得到movie是一个字典中的key#     print(movie)# actors=movie['actors']# if name in actors:#     print(name+'出演了'+movie)

try:a = int(input('请输入第一个整数'))b = int(input('请输入第二个整数'))result = a / bprint('结果为:', result)
except ZeroDivisionError:print('除数不能为0!')
except ValueError:print('请输入数字串!')
except BaseException as e:print(e)
print('程序结束')

try:a = int(input('请输入第一个整数'))b = int(input('请输入第二个整数'))result = a / b
except BaseException as e:print('出错了,错误为:',e)
else:print('结果为:', result)
print('程序结束')
# 请输入第一个整数a
# 出错了,错误为: invalid literal for int() with base 10: 'a'
# 程序结束# 请输入第一个整数10
# 请输入第二个整数0
# 出错了,错误为: division by zero
# 程序结束

try:a = int(input('请输入第一个整数'))b = int(input('请输入第二个整数'))result = a / b
except BaseException as e:print('出错了,错误为:',e)
else:print('结果为:', result)
finally:print('谢谢您的使用')
print('程序结束')
# 请输入第一个整数10
# 请输入第二个整数3
# 结果为: 3.3333333333333335
# 谢谢您的使用
# 程序结束

102 常见异类类型

103 traceback模块

import traceback
try:print('1.____________')num=10/0
except:traceback.print_exc()

104 pycharm调试

105 编程思想

106 类与对象

python中一切皆对象

107 类的创建

类的名称由一个或多个单词组成,每个单词的首字母大写,其余小写

类是对象,开辟内存空间

108 对象的创建

(这节课讲的很差,可能听不懂,需要继续往后听)

class Student:# Student称为类的名称native_pace='吉林'#直接写在类里面的变量,称为类属性def __init__(self,name,age):#name,age是实例属性self.name=nameself.age=age#实例方法def eat(self):print('学生在吃饭')#静态方法,使用@staticmethod@staticmethoddef method():print('静态方法中不允许写self')#类方法,@classmethod@classmethoddef cm(cls):print('类方法中传cls')
#在类之外定义的称为函数,在类之内定义的称为方法stu1=Student('张三',20)
stu1.eat()
stu1.cm()
stu1.method()
print(stu1.name,stu1.age)
# 学生在吃饭
# 类方法中传cls
# 静态方法中不允许写self
# 张三 20Student.eat(stu1)
# 学生在吃饭
  1. 对象名.方法名()
  2. 类名.方法名(类的对象)

109 类属性、类方法、静态方法

print(Student.native_pace)#吉林
stu1=Student('张三',20)
stu2=Student('李四',30)
print(stu1.native_pace)
print(stu2.native_pace)
# 吉林
# 吉林
Student.native_pace='天津'
print(stu1.native_pace)
print(stu2.native_pace)
# 天津
# 天津Student.cm()
Student.method()
# 类方法中传cls
# 静态方法中不允许写self

110 动态绑定属性和方法

class Student:def __init__(self,name,age):self.name=nameself.age=agedef eat(self):print(self.name+'在吃饭')stu1=Student('张三',30)
stu2=Student('李四',40)stu2.gender='男'
print(stu1.name,stu1.age)
print(stu2.name,stu2.age,stu2.gender)
# 张三 30
# 李四 40 男def show():print('定义在类之外,函数')
stu1.show=show
stu1.show()

(小声吐槽:这一章讲得。。。。。。懂也可能听不懂了)

110 面向对象的三大特征-封装

class Student:def __init__(self,name,age):self.name=nameself.__age=agedef show(self):print(self.name,self.__age)stu=Student('张三',20)
stu.show()
#在类的外部使用name和age
print(stu.name)
#print(stu.__age)  print(stu.__age)AttributeError: 'Student' object has no attribute 'name'
print(dir(stu))
print(stu._Student__age)#在类的外部强制访问
#20

111 面向对象的三大特征-继承

class Person(object):def __init__(self,name,age):self.name=nameself.age=agedef info(self):print('姓名:{0},年龄:{1}'.format(self.name,self.age))
#定义子类
class Student(Person):def __init__(self,name,age,score):super().__init__(name,age)self.score=score
#测试
stu=Student('Jack',20,'1001')
stu.info()
# 姓名:Jack,年龄:20

112 方法重写

class Person(object):def __init__(self, name, age):self.name = nameself.age = agedef info(self):print(self.name, self.age)class Student(Person):def __init__(self, name, age, stu_no):super().__init__(name, age)self.stu_no = stu_nodef info(self):super().info()print(self.stu_no)class Teacher(Person):def __init__(self, name, age, teachofyear):super().__init__(name, age)self.teachofyear = teachofyearstu = Student('张三', 20, '10010')
stu.info()
# 张三 20
# 10010

113 object类

class Student:def __init__(self,name,age):self.name=nameself.age=agedef __str__(self):return '我的名字是{0},今年{1}岁了'.format(self.name,self.age)stu=Student('张三',20)
print(dir(stu))
# ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__',
#  '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__',
#  '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__',
#  '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__']
print(stu)
# <__main__.Student object at 0x0000016E05C38400>
# 我的名字是张三,今年20岁了 #默认调用__str__()这样的方法,重写了

114 面向对象的三大特征-多态

Python是一门动态语言

class Animal(object):def eat(self):print('动物吃')
class Dog(Animal):def eat(self):print('狗吃')
class Cat(Animal):def eat(self):print('猫吃')
class Person(object):def eat(self):print('人吃')def fun(animal):animal.eat()fun(Dog())
fun(Cat())
fun(Person())
# 狗吃
# 猫吃
# 人吃

115 116 特殊方法和特殊属性

print(dir(object))
# ['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__',
#  '__getattribute__', '__gt__', '__hash__','__init__', '__init_subclass__', '__le__',
#  '__lt__', '__ne__', '__new__',  '__reduce__', '__reduce_ex__', '__repr__', '__setattr__',
#  '__sizeof__', '__str__', '__subclasshook__']class A:pass
class B:pass
class C(A,B):def __init__(self,name):self.name=namex=C('Jack')
print(x.__dict__) #{'name': 'Jack'}
print(C.__dict__)#{'__module__': '__main__', '__init__': <function C.__init__ at 0x000001C1EF107700>, '__doc__': None}
print(x.__class__)#对象所属类<class '__main__.C'>
print(C.__bases__)#父类元组(<class '__main__.A'>, <class '__main__.B'>)
print(C.__base__)#基类元组<class '__main__.A'>
print(C.__mro__)#类的层次结构(<class '__main__.C'>, <class '__main__.A'>, <class '__main__.B'>, <class 'object'>)
print(B.__subclasses__())#子类[<class '__main__.C'>]
a=20
b=100
c=a+b
d=a.__add__(b)print(c)#120
print(d)#120class Student:def __init__(self,name):self.name=namedef __add__(self,other):return self.name+other.namedef __len__(self):return len(self.name)stu1=Student('张三')
stu2=Student('李四')#print(stu1+stu2)TypeError: unsupported operand type(s) for +: 'Student' and 'Student'
print(stu1+stu2)#张三李四
#实现了两个对象的加法运算,在类中编写了add特殊的方法
print(len(stu1))#TypeError: object of type 'Student' has no len()
#2   在类中编写了len特殊的方法,return len(self.name)

117 _new_ / _init_

class Person(object):def __new__(cls, *args, **kwargs): #创建对象print('__new__被调用执行了,cls的id值为{0}'.format(id(cls)))     #4864obj=super().__new__(cls)print('创建的对象的id为:{0}'.format(id(obj)))                  #7264return objdef __init__(self,name,age):  #对创建的对象初始化self.name=nameself.age=ageprint(' _init__被调用了,self的id为:{0}'.format(id(self)))     #7264print('object id:{0}'.format(id(object)))                             #4048
print('Person id:{0}'.format(id(Person)))                             #4864
p1=Person('三',20)
print('p1 id:{0}'.format(id(p1)))                                     #7264# object id:140709592514048
# Person id:2701662344864
# __new__被调用执行了,cls的id值为2701662344864
# 创建的对象的id为:2701663637264
#  _init__被调用了,self的id为:2701663637264
# p1 id:2701663637264

118 类的赋值与浅拷贝

119深拷贝

#类对象的赋值操作,形成两个变量,实际上还是指向同一个对象
cpu1=CPU()
cpu2=cpu1
print(cpu1)
print(cpu2)
# <__main__.CPU object at 0x0000021A25626FD0>
# <__main__.CPU object at 0x0000021A25626FD0>disk=Disk()
computer=Computer(cpu1,disk)
import copy
computer2=copy.copy(computer) #浅拷贝,对象包含的子对象内容不拷贝
computer3=copy.deepcopy(computer) #深拷贝,递归拷贝对象中包含的子对象
print(computer,computer.cpu,computer.disk)
print(computer2,computer2.cpu,computer2.disk)
print(computer3,computer3.cpu,computer3.disk)
# <__main__.Computer object at 0x000002281D258F70> <__main__.CPU object at 0x000002281D258FD0> <__main__.Disk object at 0x000002281D258FA0>
# <__main__.Computer object at 0x000002281D258820> <__main__.CPU object at 0x000002281D258FD0> <__main__.Disk object at 0x000002281D258FA0>
# <__main__.Computer object at 0x000002281D258730> <__main__.CPU object at 0x000002281D258430> <__main__.Disk object at 0x000002281D258460>

120 模块化编程的好处

121 模块的导入

import math
print(id(math))
print(type(math)) #<class 'module'>
print(math)       #<module 'math' (built-in)>
print(math.pi)    #3.141592653589793
print('==================')
print(dir(math))
print(math.pow(2,3),type(math.pow(2,3))) #8.0 <class 'float'>
print(math.ceil(9.324))  #10
print(math.floor(32.435)) #32

122 以主程序方式运行

main+回车 快速输入:if __name__ == '__main__':

#只有点击运行本身模块时才运行if __name__ == '__main__':下面的代码,import时不会执行

123 python中的包

使用import方式进行导入,只能跟包名或模块名

使用from...import方式进行导入,可以导入包、模块、函数、变量

import pageage1import calcfrom pageage1 import moduleafrom pageage1.modulea import a

124 常用的内容模块

125 第三方模块的安装与使用

126 编码格式的介绍

127 文件读写的原理

类似队列先进先出

128 常用的文件打开模式

129 文件对象的常用方法

130 with语句

with open('logo.png','rb') as src_file:with open('copy2logo.png','wb') as target_file:target_file.write(src_file.read())

131 os模块的常用函数

132 os.path模块的常用方法

马士兵Python基础版2020教程P98-P134 PPT笔记+课堂代码相关推荐

  1. 马士兵Python基础版2020教程P58-P96 PPT笔记+课堂代码

    目录 57 字典 59 字典的创建 60 字典元素的获取 61 字典增删改 62 获取字典试图 63 字典元素遍历 64 字典的特点 65 字典生成式 66 元组 67 元组的创建 68 为什么元组是 ...

  2. 马士兵Python基础版2020教程P1-P57 PPT笔记+课堂代码

    主要记录在看网课过程中的ppt重点内容和实例代码 目录 02 Python的自述 03 安装开发环境 05 输出函数print 06 转义字符与原字符 08 标识符和保留字 09 变量的定义和使用 1 ...

  3. python基础环境配置教程

    python基础环境配置教程 下载vscode 1.输入网址:https://code.visualstudio.com/ 2.下载windows版vscode并安装. 下载慢的话在自己的浏览器中找到 ...

  4. 超完整 Python基础入门知识教程

    本书旨在帮助Python开发人员发现该语言和相关库的突出特性,并编写简单.流畅.易于阅读和易于维护的代码.特别是生成器.属性描述符(ORM的键)和Python表达式的对象在数据库处理过程中的具体应用: ...

  5. python基础-------python2.7教程学习【廖雪峰版】(二)

    2017年6月7日14:59:27 任务:     看完python基础 1.计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以 ...

  6. 黑马程序员 python 基础版 哪个老师_(看黑马程序员Python基础班视频挺好,犹豫该不该报班?)...

    看黑马程序员Python基础班视频挺好,犹豫该不该报班? 如果看视频比较好的话,还是建议自学吧,毕竟录制视频的老师不一定参与实质的讲课,且能自学也省一笔培训费用了.我是看的bilibili上黑马程序员 ...

  7. 教孩子学编程 python语言版_教孩子学编程 PYTHON语言版 PDF_IT教程网

    资源名称:教孩子学编程 PYTHON语言版 PDF 资源目录: 第1章Python基础--认识环境1 1.1认识Python3 1.2用Python编写程序5 1.3运行Python程序5 1.4本章 ...

  8. python手机版下载教程-Python教学

    Python教学 Python教学app是一款非常实用的学习教育软件,这里拥有海量丰富的学习资源,从零开始,通过游戏闯关.趣味测试来轻松入门,快速掌握,而且更新速度极快,超多200篇新手的教程,可以专 ...

  9. 接入百度智能云的营业执照识别接口、工商信息查询(基础版)接口到实际业务,参考代码

    我的代码放在公共模块如下: 1.根据百度云官方文档-SDK中心,下载sdk对应jar包,我下载下来的版本是bce-java-sdk.0.10.254 2.使用mvn命令手动引入jar mvn inst ...

  10. B站马士兵python入门基础版详细笔记(6)

    前言: 这篇文章是B站学习python入门基础班的视频的第五 六章内容,主要讲述的是列表,主要包括列表的创建,以及他的元素的增.删.查.改操作命令. 一.列表的初始化 为什么要使用列表? 列表就好比C ...

最新文章

  1. TestNG方法測试及注意要点 代码及配置具体解释(解决testng方法不运行问题)
  2. Android中Activity的四种启动方式
  3. soap php 分开类,将请求处理到同一PHP SOAP服务器中的多个类
  4. Python基础教程:super()方法详解
  5. MongoDB 里面日期查询的问题
  6. find命令---Linux学习笔记
  7. nginx python webpy 配置安装
  8. NEO从源码分析看共识协议
  9. mybatis如何在控制台打印执行的sql语句
  10. 【LINQ】Linq to SQL -- Where语句
  11. UNIX发展历史流程图
  12. 香港 三星 android6.0,【极光ROM】-【三星S20(国行/港版/台版/韩版/美版) G981X-高通865】-【V6.0 Android-Q-TJA】...
  13. DM368开发 -- 视频监控系统相关技术研究(转毕设)
  14. 怎么在搜索计算机学报的论文,计算机学报方面论文题目 计算机学报论文标题如何定...
  15. 关于RAM,ROM,EEPROM,FLASH,DDR,CACHE
  16. mapbox-gl加载带环境贴图白模(视频)
  17. 【DKN】(三)data_preprogress.py
  18. Frida hook零基础教程
  19. php开启页面错误提示,php如何设置关闭网页错误提示
  20. B2:Unity制作Moba类游戏——聊天系统

热门文章

  1. 比较ole db/odbc/ado/ado.net/jdbc
  2. C++ const与static
  3. CentOS 6.6上搭建C++运行环境
  4. 临时表空间和数据表空间
  5. 构建wifi破解所需的密码库文件
  6. SAS Planet软件使用教程及下载Googlemap地图
  7. 实体词典 情感词典_基于情感词典的情感分析
  8. 如何写Java单元测试
  9. Android超级好看的动态登陆界面(附有详细代码)
  10. JS实现返回顶部功能