
笔记
文章平均质量分 54
11
喵俺第一专栏
共同学习,共同进步,提高编程技能。另外,有好多优秀的项目练手哦,详细看第一个专栏,里面有很多可作为课设、毕业的项目,希望自己可以帮助到你哦!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
黑马python(五)
目录:1.if语句的基本格式2.if else组合判断语句3.if else if else组合判断语句4.判断语句的嵌套。原创 2025-06-11 22:04:33 · 46 阅读 · 0 评论 -
黑马python(四)
目录:1.字符串格式化的精度控制2.字符串的格式化方法23.表达式进行字符串格式化4.数据输入(input语句)原创 2025-06-11 20:55:56 · 102 阅读 · 0 评论 -
黑马python(三)
利用 % 替换 +原创 2025-06-10 21:52:24 · 85 阅读 · 0 评论 -
黑马python(二)
目录:1.字面量2.注释3.变量4.数据类型5.数据类型转换。原创 2025-06-10 21:16:04 · 325 阅读 · 0 评论 -
黑马python(一)
原创 2025-06-10 20:40:05 · 257 阅读 · 0 评论 -
Python(十五)
利用元类,就可以阻止类被实例化,抽象基类也是一种不能被实例化的类。模块是py中最高级别的组织结构,也是最高层次的代码重用手段。会有重名问题:内置函数int会被自己定义的int函数覆盖。最后导入的,会覆盖之前导入的重名方法。通过使用抽象基类,报错提前了。原创 2025-06-03 21:53:05 · 210 阅读 · 0 评论 -
Python(十四)
类就是用来创建对象的模版,类是由type创造而来的,元类就是创建类的模版,type可以用来创造类,因为type本身就是一个元类,使用元类来创造类,元类之间也有继承关系,所有的元类都继承type。在类里面call方法是拦截对象被当做函数调用时候的操作,如果吧call方法定义到元类中,拦截的类实例化对象的操作。name:是类名,bases:指定的父类,attrs:指定的属性和方法。对象被定义的时候执行new方法,在执行init方法。4.限制类实例化时的传参方式。5.禁止一个类被实例化。判断是否大写字母开头。原创 2025-05-31 17:50:19 · 231 阅读 · 0 评论 -
Python类和对象四(十四)
py的魔法方法有很多代偿的实现,比如说迭代,假如没有定义iter和next魔法方法,那么当把对象放到迭代工具中,放到for循环语句中,py找不到iter和next魔法方法,就会尝试查找getitem魔法方法,contains也是有代偿的,如果我们没有实现从contains,但是使用了in和not in进行成员关系的判断,py就会尝试去查找iter和next魔法方法。repr这个魔法方法是可以对str这个魔法方法进行代偿的,也就是说我么之定义了repr魔法方法,调用str函数也是可以被响应到的。原创 2025-05-10 09:02:58 · 854 阅读 · 0 评论 -
Python类和对象四(十三)
for语句作的第一步操作,是将对象传入内置函数iter中,并由此拿到一个响应的迭代器,只有拿到迭代器才能拥有所需的next方法,然后第二部利用next魔法方法,进行迭代操作。如果一个对象定义了iter魔法方法,,他就是一个可迭代对象,如果可迭代对象定义了next魔法方法,他就是一个迭代器,比如说列表是一个可迭代对象,不是一个迭代器。这个方法可以响应单个下标索引的操作,又能支持代表范围的切片索引方式。右移动n位,就是除以2的n次方。对象作为索引去用的时候才触发。只要某个位是1结果就是1 、原创 2025-04-26 22:10:30 · 546 阅读 · 0 评论 -
Python类和对象三(十二)
定义闭包函数是为了让self保存在外部的函数的x变量中,内部函数的作用是为了窃取这个self对象,在del方法中调用它的时候是带参数的,就把这个参数存储起来,如果在外部调用这个函数不带参数就是用默认值None,那么他会返回刚刚拿到的self对象。字典跟集合高效的背后玄机,就是那空间来换时间,除了费内存,如果我们知道一个对象设计出来只是需要几个固定的属性,将来没有动态添加属性这种需求,那么利用字典来存放属性这种空间上的牺牲就是纯纯的浪费。在py中的私有变量,就是想要私有的那个变量,偷偷的改了个名字。原创 2025-04-26 11:07:52 · 222 阅读 · 0 评论 -
Python类和对象二(十一)
通过super函数,去查找父类的方法,自动会按照mro的顺序,去搜索父类的相关方法,避免重复调用的问题,mro顺序就是:如果出现同名的属性和方法,py会有一个明确的查找覆盖顺序,这个顺序有一个官方的术语叫做mro。发现A重复初始化了两次,类c同事继承类B1和B2,类B1和B2又是继承类A的,当c调用类B1和类B2的构造函数的时候,类A会被调用两次。如何解决钻石继承问题呢?这几个对象都继承Shape类,他们都重写了构造函数和area方法,这个就是多态的体现。原创 2025-04-23 21:16:30 · 410 阅读 · 0 评论 -
Python类和对象一(十)
可以把它当做字典类使用:字典:最小类。原创 2025-04-20 17:08:32 · 381 阅读 · 0 评论 -
Python异常(九)
编程的时候会遇到两类错误:语法错误,不安py规定的语法来写代码。finnally通常用于处理收尾工作,比如关闭文件。这个跟raise类似,通常用于代码调试。捕获多个异常:pass通过不打印。:这条语句尝试断言变量。原创 2025-04-20 10:30:31 · 155 阅读 · 0 评论 -
Python永久存储文件操作(八)
将py对象序列化,转换为二进制字节流的这么一个过程,将原代码,变成二进制组合。如果在Windows上想使用反斜杠作为分隔路径,不得不使用另外一条反斜杠来转义反斜杠本身,或者使用原始字符串。当用w打开一个文件的时候,如果文件有内容,内容会清空,写入内容到文件,需要下面三步。删除操作:删除的话如何下面有文件会报错,需要先执行n.unlick删除里面的文件。在不适用close关闭文件的情况下,将内容保存到文件,可以使用flush方法。查询当前目录的下一级目录中的所有的.py后缀的文件。原创 2025-04-20 09:54:17 · 358 阅读 · 0 评论 -
Python函数三(七)
reduce第一个参数是函数(指定两个参数),第二个参数是可迭代对象,作用是将可迭代对象中的元素依次传递到第一个参数指定的函数中,最终返回累积的结果。装饰器的时候,time_master将myfunc作为参数使用,那么 time_master就是高阶函数。对指定的函数进行二次包装,将现有的函数不分参数进行预先给绑定,从而得到一个新的函数,该函数称为偏函数。当一个函数接收另一个函数作为参数的时候,那么这个函数我们就把它称为高阶函数。内省(自醒):指程序运行的时候,能够进行自我检测的一种机制。原创 2025-04-06 11:29:27 · 240 阅读 · 0 评论 -
Python函数二(六)
Lambda是一个表达式并非语句,它能够出现py语法不允许def语句出现的地方,但是所有的公平功能代码都局限在一个表达式中去实现,lambda通常只能实现那些较为简单的需求,不用考虑函数叫什么,lamnbda是一个匿名函数,def语句用于定义功能复杂的函数,处理复杂的工作。lambda是一个表达式,可以用于常规函数不能存在的地方,比如把它放到列表里。利用推导的形式获得生成器的方法,我们称为生成器表达式。列表推导式会一下子将所有结果生成出来,放到一个列表中。生成器表法式一次只会产生一个数据。原创 2025-04-06 09:22:35 · 178 阅读 · 0 评论 -
Python函数一(五)
使用* 限制,右边必须使用关键字参数,左边不限制。斜杠左边是不能支持关键字参数的。位置参数必须在关键字参数之前。默认参数,必须放到最后面。原创 2025-04-05 11:10:49 · 257 阅读 · 0 评论 -
Python集合(五)
跟字典一样,最大的特性就是唯一性,集合中的所有的元素都是独一无二的,并且还是无序的。集合并不是说比列表优秀,因为它的效率的背后是有代价的,代价是要牺牲海量的存储空间。对称差集:排除两个集合共有的元素之后,剩余的所有元素,没有多参数。py中大多数不可变的对象啊都是可哈希的,可变的对象是不可哈希的。仅适用于set对象的方法:对集合中的内容进行改动的方法。只有可哈希的对象,才有资格作为字典的键,以及集合的元素。集合是无序的,不能使用下标索引的方式去访问它。并集、交集、差集、对称差集。原创 2025-04-04 15:29:01 · 193 阅读 · 0 评论 -
Python字典(四)
字典的结构跟序列相辅相成,它是py中唯一实现了映射关系的内置类型根据密文推导铭文一个列表它们的执行时间在映射类型的数据获取上,字典的效率远远快于列表的。原创 2025-03-30 13:37:38 · 260 阅读 · 0 评论 -
Python列表(三)
列表、元组、字符串py把他们都统称为序列,根据能否被修改这一特征,可以将序列分为:可变序列和不可变序列列表就是一个典型的可变序列,而元组和字符串就是不可变序列下面讲的是能够作用序列的运算符和函数。原创 2025-03-29 11:28:19 · 204 阅读 · 0 评论 -
Python列表(学习二)
列表是可以容纳不同类型的数据的。原创 2025-03-23 12:29:34 · 254 阅读 · 0 评论 -
Python(学习一)
做网站有成熟的框架像FLASK、DJANGO、TORNADO,写爬虫有好用到哭的REQUESTS,还有强大到没盆友的SCRAPY随着NUMPY、SCIPY、MATLOTLIB等众多第三方模块的开发和完善,不仅支持py支持各种数学运算,还可以绘制高质量的2D和3D图像,和科学计算领域曾经最流行的商业软件MATLAB相比Python比MATLAB所采用的脚本语言应用更为广泛,可以处理更多文件类型的软文件和数据。原创 2025-03-15 19:01:42 · 988 阅读 · 0 评论 -
Git(四)
点击右下角:显示本地分支和远程分支,还可以创建分支。我们这样不仅可以创建分支还可以只能创建分支的提交点。点击:new Branch。原创 2023-03-29 23:29:28 · 121 阅读 · 0 评论 -
Git(三)
总结:就是有一个人先推送到远程,另一个人需要先pull指令先解决冲突,在push。打开后初始化一个库,在初始化前,先添加一个文件,像.idea不想要git管理的。写上远程仓库的地址:下面是克隆文件的地址,可以更改,这里没有更改。添加远端:名字一般为origin,随意命名,url为仓库的名字。克隆:不指定仓库名字,默认是后面git_test的名字。另外一个克隆的人:也写了一个功能:查询功能。初始化仓库之后,就会出现:Git:后面的。比如说:另一个人写了代码:退出功能。克隆一个项目:选择一个远程仓库。原创 2023-03-29 22:20:25 · 645 阅读 · 0 评论 -
Git(二)
GitLab需要自己搭建,GitHub和码云都是别人帮助我们托管,GitLab自己托管,比较安全,企业中大多用GetLab。比如说两个人同时开发,他们都改了同一个文件里面的同一行文字或代码,这个时候就冲突了到底是用谁的呢?推送的时候,可以写2个master,第二个是远程的master如果名字一样可以省略。删除dev02分支:就可以清除的看到dev01和master分支的合并。切换到master分支:file01.txt没有改变,把它也进行更改。提交,这两个分支的同一个文件,都发生了改变。原创 2023-03-28 22:05:59 · 199 阅读 · 0 评论 -
Git(一)
untracked:未跟踪,是文件虽然创建了,但是他和git没有任何关系,需要告诉git我这个文件创建好了需要git管理它,当发出指令后就会变成,已暂存状态。在本地仓库下有2个文件,如果不希望.a的文件让git管理,只让.txt的给git管理,那么git add . 如何使用呢?如果清屏了日志:使用git reflog 可以查看使用过的原始日志。git add. 再次查看状态:变成即将被提交的修改。编辑这个文件:以.a结尾的文件不给git管理。查看一下状态,发现它没有提示:.a的文件。原创 2023-03-28 17:36:02 · 339 阅读 · 0 评论 -
常见算法(三)
它重复的遍历过要排序的数列,一次比较相邻的两个元素,如果他们的顺序错误就把他们交换过来。这个算法的名字由来是因为越大的元素会经由交换慢慢"浮"到最后面。冒泡排序(Bubble Sort)也是一种简单直观的排序算法。当然,大家可以按照从大到小的方式进行排列。原创 2023-03-20 15:58:38 · 324 阅读 · 0 评论 -
常见算法(二)
更多的是先计算出当前数据的哈希值,用哈希值跟数组的长度进行计算,计算出应存入的位置,再挂在数组的后面形成链表,如果挂的元素太多而且数组长度过长,我们也会把链表转化为红黑树,进一步提高效率。但是实际上,我们一般不会采取这种方式,因为这种方式容易导致一块区域添加的元素过多,导致效率偏低。分块查找适用于数据较多,但是数据不会发生变化的情况,如果需要一边添加一边查找,建议使用哈希查找。汲取了顺序查找和折半查找各自的优点,既有动态结构,又适于快速查找。哈希查找是分块查找的进阶版,适用于数据一边添加一边查找的情况。原创 2023-03-20 13:57:34 · 487 阅读 · 0 评论 -
常见算法(一)
min位置不变,max等于mid-1,重新计算mid的值(1+2)/2=1 1位置的数据23和79相比小于79做掉min左边的数据,把min往右移min=mid+1,重新计算mid进行相比。当元素不存在时:当147还是小于150,这个时候程序还会认为要查找的元素还在右边,此时min在往右加一,这个时候min跑到max的右边,此时就是结束条件,认为不存在。中间等于(0+7)/2=3.5 等于3 3位置的数据81和79相比,大于79,所以去掉右边大于81的数据。通过再次计算79=79。原创 2023-03-19 17:14:54 · 546 阅读 · 0 评论 -
Git学习总结
环境变量只是为了全局使用而已,但是现在我们右键,也可以在任何地方使用,配不配置都行,安转的时候,默认已经配置了。例如:忽略文件配置,通过Git我们配置一些哪些文件可以忽略,不把它添加到暂存区里面。用户配置设置:这个是必须要配置的,它代表用户的信息 ,表名你向Git表名你是谁。新建一个文件,再次查看:显示hello.txt没有被跟踪。查看命令发现有一个文件变成暂提交的状态 ,暂存区有文件了。比如本地的一个项目:它有项目目录,叫做本地空间。首先初始化项目,并查看转态:显示没有文件被跟踪。原创 2022-10-10 22:55:21 · 312 阅读 · 0 评论 -
浅学设计模式(五)
如果我们的Cmputer要想增加不会影响到我们的品牌,品牌想要增加也不会影响Computer。以上图使用的多继承,耦合性太强了,不符合单一继承原则。写成一个通用的:代理方法。原创 2022-10-10 16:19:44 · 154 阅读 · 0 评论 -
浅学设计模式(四)
发现克隆之后,在更改v1,发现克隆的v2也改变了,说明v2克隆v1,把v1的值拷贝过来了,它的引用也拷贝过来了。在次运行:发现更改之后v1值发生了改变v2不变,这就实现了深克隆。这里网线创不创建没有作用。更改代码:进行深克隆。原创 2022-10-10 14:32:48 · 164 阅读 · 0 评论 -
浅学设计模式(三)
产品写成一个类就好了,操作一个类的构建顺序,具体的构造就有指挥者来完成 ,这样就达到了定义,如果有不同的工人就可以创建不同的楼,只要改变new Woeker就行了。原创 2022-10-09 21:26:57 · 179 阅读 · 0 评论 -
浅学设计模式(二)
如果想要再增加一个车,需要在工厂里面添加,需要更改代码工厂的方法一,不满足了OOP原则,可以添加方法二,如果需要添加车,只需要在工厂里添加代码,还是不满足开闭原则。使用了工厂之后,无需关心底层的细节,只需要调用方法获取就行,无需关注工厂的实现细节。比如还会涉及到很多的接口,简单的工厂模式就解决不了,就引申出来抽象工厂模式。原来的类我们没有改动,就满足了开闭原则,但是这样的话每增加一个车类,原来的方式使用new: 需要关心细节,如何创建对象。创建TeslaFactory工厂。创建工厂接口:工厂的工厂。原创 2022-10-09 18:33:33 · 339 阅读 · 0 评论 -
浅学设计模式(一)
new LazyMan A线程可能执行的顺序1 3 2 当在有B线程认为LazyMan是不等于null,执行return lazyMan此时lazyMan还没有完成构造,就出现问题。开闭原则:是当应用需求发生改变的时候, 尽量不去修改原来的代码,可以在上面进行扩展。行为性模式:主要描述类和对象之间,怎么相互协作,完成单个对象无法完成的任务。创建性模式:描述怎样去创建一个对象,主要特点是想办法让对象的创跟使用分离。里氏替换原则:子类可以扩展父类的功能,但是尽量不要改变父类原有的功能。原创 2022-10-09 11:54:43 · 222 阅读 · 0 评论 -
return、break和continue
return、break和continue这三个关键字有一个共同点,那就是读能让后面的语句不执行,不同的地方就是挑的距离不一样。return很强大,如果一个函数中有一个return,并且执行了,那么这个函数就完了。return 表示从被调函数返回到主调函数继续执行,返回时可附带一个返回值,由return后面的参数指定。 return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。 如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态转载 2021-08-21 09:44:46 · 200 阅读 · 0 评论