python基础
文章平均质量分 76
python基础
老司机开代码
这个作者很懒,什么都没留下…
展开
-
散点图绘制
文章目录1. 二维数组的索引2. npz文件3. 散点图的绘制在Python数据分析与应用中有一个散点图的例子,做这个例子之前首先要弄清楚两个点:对二维数组进行取数操作python中的npz文件1. 二维数组的索引二维数组中的每一个元素通过行和列两个坐标共同锁定,因此取某个元素的时候,需要同时给定行和列来指定某个元素。例:假设变量x指向了一个二维数组, 那么访问指定元素的格式就是x[行坐标, 列坐标] ,注意坐标号从0开始In [38]: x = np.array([[1,2,3], [原创 2021-05-16 11:42:59 · 2154 阅读 · 0 评论 -
Matplotlib学习笔记
文章目录1. pyplot基础语法1.1 plt.figure - 创建空白画布1.2 figure.add_subplot - 创建子图并选中子图1.3 plt.title - 指定标题1.4 plt.xlabel, plt.ylabel - 定义轴属性1.5 plt.xlim, plt.ylim - 指定区间1.6 plt.xticks, plt.yticks - 指定刻度1.7 plt.plot - 绘制曲线1.8 plt.legend - 指定图形的图例1.9 plt.savefig - 保存图像1原创 2021-05-09 17:42:41 · 1555 阅读 · 2 评论 -
Numpy学习笔记(一)
文章目录1. 数组的创建1.1 数组的属性1.2 创建数组时提供的参数1.3 创建数组的8中方法1.3.1 array1.3.2 arange1.3.3 linspace1.3.4 logspace1.3.5 zeros1.3.6 eye1.3.7 diag1.3.8 ones1. 数组的创建1.1 数组的属性-> ndim : 返回数组的维数。-> shape : 返回数组的尺寸(行数, 列数)-> size : 返回数组中元素的个数-> dtype : 返回数原创 2021-03-21 20:46:22 · 242 阅读 · 1 评论 -
python中的私有属性
文章目录私有化1. 对于私有化的理解2. 为何访问不到私有化属性?私有化1. 对于私有化的理解_func: 单前置下划线,私有化属性或方法。类对象和子类可以访问,但是无法通过from somemodule import *导入。__func : 双前置下划线,私有属性或方法。不能被外界访问,不会被子类继承。我们先来看前置双下划线:以前置双下划线定义的属性和方法,实例对象和子类无法调...原创 2020-04-28 18:12:14 · 175 阅读 · 0 评论 -
python中的类方法、静态方法、实例方法
文章目录python创建类的流程类方法、实例方法、静态方法python创建类的流程要想真正的了解类方法、实例方法和静态方法的区别。我们要先搞清楚python在实例化中的过程。首先我们编写一个Person类。class Person(): gender = 'man' def __init__(self): self.name = 'root' ...原创 2020-04-27 22:12:52 · 701 阅读 · 0 评论 -
Python 异常处理之try...except
文章目录1. 什么是异常2. try...excpt的使用2.1 语法介绍2.2 执行流程2.3 异常类型的查看3. try...except...else4. try...except...finally1. 什么是异常在执行python程序时,会有出现错误的可能。导致出错的原因有一般两种:语法错误:程序员编写的代码不符合python的规范,比如把print写成了printf,此种错误一旦出现会导致程序无法正常启动,但是此类错误是可以避免的。异常:异常是指在程序运行的过程中由于用户的非法输入,环原创 2021-03-11 18:30:39 · 20647 阅读 · 0 评论 -
Python 生成器
文章目录1. 什么是生成器2. 创建生成器的方法2.1 方法一2.2 方法二3. 生成器的使用3.1 yield的作用3.2 调用生成器的两种方法3.2.1 next(生成器对象)3.2.2 生成器对象.send(value)4. 生成器和迭代器的异同1. 什么是生成器上篇文章讲了Python迭代器;这篇文章就来研究一下生成器。生成器:一种特殊的迭代器,含有yield的函数就是生成器。特殊在哪里? 生成器是一个没有实现__iter__和__next__方法的迭代器。下属代码就是一个生成器de原创 2021-03-10 18:31:23 · 310 阅读 · 0 评论 -
Python迭代器
文章目录1. 可迭代对象1.2 判断一个对象是否是可迭代对象1.2 对可迭代对象的解读1.3 小结2. 迭代器2.1 for的解读2.2 解读迭代器2.3 自定义迭代器3. 迭代器的应用场景3.1 场景一3.2 场景二4. 迭代器的其他应用4.1 range4.2 类型转换1. 可迭代对象对list,tuple,str等类型的数据使用for…in…的循环语法, 可以从其中依次拿到数据进行使用,我们把这样的过程称为遍历,也叫迭代;同时称list,tuple,str等类型的的数据为可迭代对象。1.原创 2021-03-09 20:49:24 · 599 阅读 · 1 评论 -
对__call__的究极研究
文章目录1. `__call__`定义在普通类中2. `__call__`在Metaclass中的作用2.1 证明1. __call__定义在普通类中当在普通的类中定义__call__方法时,会使得实例对象变成一个可调用对象python的可调用对象都会有__call__方法class T: passt = T()t()输出TypeError: 'T' object is not callable说T的实例对象是不可调用的;但是当你在T中实现了__call__方法以后cl原创 2021-03-07 17:04:43 · 216 阅读 · 0 评论 -
Python 的hasattr(), getattr() 和 setattr()函数
文章目录1. 语法及用法1.1 hasattr()1.2 getattr()2.3 setattr()2. 以上三个函数和`__getattribute__`等魔法方法的关系1. 语法及用法1.1 hasattr()用于判断对象obj是否含有某属性, 返回True或Falsehasattr(obj, name)-> obj : 对象名-> name : 属性名—例子—class T: country = 'xxx' def __init__(self):原创 2021-03-06 17:51:02 · 412 阅读 · 0 评论 -
Python 偏函数
文章目录1. Python中参数的分类2. 偏函数2.1 位置参数2.2 关键字参数2.3 可变长参数3. 总结1. Python中参数的分类位置参数:def test(a, b), 其中,a,b就是位置参数。调用函数时,要保证实参和形参的数量和个数相同。命名参数(关键字参数):*后的参数即为关键字参数,传参的时候,必须以name=value的格式传:def test(*, a, b) ; 调用:test(a=1, b=2)缺省参数:有默认值的参数。def test(a, b=2)不定长参数:d原创 2021-03-04 17:32:50 · 922 阅读 · 4 评论 -
Python中的__repr__和__str__
文章目录1. `__repr__`的作用2. 实例对象接收的对象究竟是谁?3. 结论1. __repr__的作用输出实例对象时,其内容由__repr__的返回值决定举个例子吧,通俗易懂class Test: def __repr__(self): return '铁锤't = Test()print(t) # 铁锤可以看到,当打印实例对象的时候,打印的结果就是__repr__的返回值。而我们如果不定义__repr__则会默认使用object的__repr__函原创 2021-03-02 22:52:54 · 2680 阅读 · 0 评论 -
Python 元类
文章目录1. 什么是元类2. type的第二种用法3. MetaClass1. 什么是元类我们可以通过类来创建实例对象,那么什么可以创建类呢?—元类(元类是一种特殊的类,它可以创建一个类对象)我们知道,实例对象是由类对象创建出来的,通过__class__属性就可以查看创建实例对象的类对象class Test: passt = Test()print(t.__class__) # <class '__main__.Test'>那么,类对象是谁创建的呢?可以输出Te原创 2021-02-28 15:57:16 · 252 阅读 · 3 评论 -
Python 中的 __new__
文章目录1. `__new__`的作用2. 用法2.1 `__new__`的实现2.2 关于初始化的问题2.3 `__new__`和`__init__`的调用顺序1. __new__的作用编程中往往少不了的一个过程就是实例化, 而实例化是生成一个新的实例对象的过程; 而一个新的实例对象的生成则是由__new__来完成的。一个实例对象需要两样东西:空间 (由__new__申请)数据 (初始化由__init__完成)我们可将实例化的过程理解为盖房子。__new__的作用就是盖一座房子(申请原创 2021-02-27 18:34:43 · 1767 阅读 · 2 评论 -
Python枚举类
文章目录1. 枚举类的定义2. 枚举类的使用3. 注意点1. 枚举类的定义枚举的属性用于定义一组不可变的相关常量值,这些值可能具有语义意义,也可能不具有语义意义比如月份,周几等等可以用枚举类来定义。枚举类有两种定义方法:自定义类继承Enumfrom enum import Enumclass Test(Enum): # 类成员 rock = 0 paper = 1 scissors = 2使用Enum定义枚举类from enum import En原创 2021-02-26 15:32:54 · 901 阅读 · 0 评论 -
Python面向对象中的多态
文章目录0. 前言1. 多态1.1 什么是多态?1.2 程序语言中的多态1.3 多态的优点2. 鸭子模型2.1 什么是鸭子模型2.2 鸭子模型2.3 鸭子模型的应用0. 前言Python面向对象的三个基本特征是:封装继承多态通过研读多篇博文,发现python的多态别具一格,本文就来探讨一下python中的多态。1. 多态1.1 什么是多态?多态就是同一类事物具有多种形态那么什么叫同一类事物有多种形态呢?我们来举几个例子:动物是一类事物,有哪些形态呢?人,猪,狗,猫等等变形原创 2021-02-24 15:39:08 · 379 阅读 · 0 评论 -
Python中的多继承查找算法
文章目录1. 问题引入1. 问题引入python是支持多继承的,即一个子类可以同时继承多个父类,但是当子类调用父类的方法时,它总需要一个查找顺序,比如:D继承了B和C,同时B和C都继承了A。那么当D调用了父类中的method方法时,查找的优先顺序是什么呢?class A: def method(self): print('A')class B(A): passclass C(A): def method(self): print('C原创 2021-02-18 21:53:10 · 403 阅读 · 0 评论 -
Python中的新式类和旧式类
新式类和旧式类的区别很多文章中都提到新式类和旧式类这两个字眼,处于好奇,查了一下。旧式类:在早期的Python版本中,程序员在定义类的时候必须要指明类继承了object,类不会默认继承object,这些没有继承object的类就称为旧式类。新式类:与上面相反,继承了object类的子类就叫做新式类,而在python3中,所有的类都会默认继承object类,所以python3中的类都是新式类。...原创 2021-02-18 14:33:45 · 284 阅读 · 0 评论 -
python程序打包发布
文章目录1. 安装py2exe2. 打包程序1. 安装py2exe打开cmd输入pip install py2exe2. 打包程序首先你要编写一个程序setup.py,用这个程序来打包你的程序。from distutils.core import setupimport py2exesetup(console=['test.py']) # test.py就是你要打包的目标程序然后打开cmd,cd到test.py所在的路径下。输入python setup.py py2exe转载 2021-02-16 18:19:14 · 185 阅读 · 0 评论 -
__getattribute__,__getattr__,__setattr__,__delattr__
文章目录1. 属性访问的调用顺序2. `__setattr__`和`__delattr__`1. 属性访问的调用顺序在实例化后,对实例属性的访问和修改操作是经常使用的,那么当我们在执行这些操作的时候,python的内部做了什么呢?__getattribute__(self, name):访问属性时调用(查看是否存在该属性,若不存在,接着去调用__getattr__)__getattr__(self, name): 访问不存在的属性时调用__setattr__(self, name, value)原创 2021-02-11 16:49:24 · 228 阅读 · 0 评论 -
对于id()函数和内存存储的研究
文章目录1. id()函数2. 根据不同情况得出来的结论2.1 数字2.2 列表等1. id()函数id函数能够返回变量所指向的地址>>> help(id) Help on built-in function id in module builtins: id(obj, /) Return the identity原创 2021-02-06 14:49:47 · 456 阅读 · 0 评论 -
python文件操作
文章目录1. 文件的打开方式1.1 openbuffering参数newline参数1.2 with as1.3 文件对象的属性2. 基础操作函数2.0 文件指针2.0.1 什么是文件指针?2.0.2 相关函数2.1 read系列2.2 write系列2.2.1 `write`和`writelines`的区别:2.3 删除文件内容1. 文件的打开方式1.1 openpython在对文件进行编辑的时,首先需要打开文件获取文件对象,然后调用一系列函数对文件对象进行操作。file = open(file_原创 2021-01-31 19:11:08 · 182 阅读 · 0 评论 -
socket学习(一)---socket模块属性
socket模块属性socket 模块还提供了更多用于网络应用开发的属性。下表列出了一些最受欢迎的属性。俗话说,师傅领进门,修行看个人。之前的文章已经将大家带入了socekt的大门,如果同学们对socket仍然有很强的好奇心的话,可以学习一下提及的属性,让自己编写的socket能够更加实用和强大!(希望作者这块砖头能够为大家引来宝贵的玉哦)属性名称描述数据属性...原创 2020-08-03 17:49:43 · 211 阅读 · 0 评论 -
socket学习(二)---创建UDP客户端
UDP客户端的创建1. 伪代码首先,我们将展现创建通用UDP服务器的一般伪代码,然后对这些代码的含义进行一般性的描述。cs = socket.socket() # 创建客户端套接字comm_loop: # 通信循环 cs.sendto()/cs.recvfrom() # 对话(发送/接收)cs.close() # 关闭客户端套接字一旦创建了套接字对象,就进入了对话循环之中,在这里我...原创 2020-08-03 17:50:44 · 741 阅读 · 0 评论 -
socket学习(三)创建简单的UDP服务器
UDP服务器的创建1. 伪代码UDP服务器不是面向连接的。除了等待传入的连接之外,几乎不需要做其他工作。s = socket.socket() # 创建服务器套接字s.bind() # 绑定服务器套接字inf_loop: # 服务器无限循环 cs = s.recvfrom()/s.sendto() # 关闭(接收/发送)s.close() # 关闭服务器套接字从以上伪代码中可以看...原创 2020-08-03 17:51:25 · 1149 阅读 · 0 评论 -
socket学习(四)--创建TCP客户端
创建TCP客户端1. 伪代码cs = socket() # 创建客户端套接字cs.connect() # 尝试连接服务器comm_loop: # 通信循环 cs.send()/cs.recv() # 对话(发送/接收)cs.close() # 关闭客户端套接字所有套接字都是利用 socket.socket()创建的。然而,一旦客户端拥有了 一个套接字,它就可以利用套接字的 conn...原创 2020-08-03 17:51:06 · 842 阅读 · 0 评论 -
socket学习(五)--创建TCP服务器
创建TCP服务器1. 伪代码s = socket.socket() # 创建服务器套接字s.bind() # 套接字与地址绑定s.listen() # 监听连接inf_loop: # 服务器无限循环 cs = s.accept() # 接受客户端连接 comm_loop: # 通信循环 cs.recv()/cs.send() # 对话(接收/发送) ...原创 2020-08-03 17:50:17 · 819 阅读 · 0 评论 -
代码优化篇之html实体编号
文章目录0. 关键字1. HTML实体编号的作用2. 案例0. 关键字HTML预留字符<实体字符<实体编号<格式:&xx;或&#xx;1. HTML实体编号的作用在 HTML 中,某些字符是预留的。比如,在 HTML 中不能使用小于号(<)和大于号(>),这是因为浏览器会误认为它们是标签。如果我们想要在HTML页面正确的显示预留字符,则需要用到实体字符或实体编号。比如:<使用<或<原创 2020-08-27 19:35:39 · 2644 阅读 · 1 评论 -
Python?Python!(python是解释型还是编译型)
前言:一个人,闲着没事,就喜欢胡思乱想,这一想就想出了很多东西,因此就充满了疑问,这又是一个百度的下午。看了很多篇博文,思路始终很是凌乱,不知道怎么写,有些内容看完就忘记了,但是我还是要进自己最大的努力去把下午看过的内容进行总结,这样也不枉费这一下午百度的流量。如果您和我一样,对python的运行有一些疑惑那么请您仔细阅读这篇文章,我写了很久,虽然我不能保证看完您就对python底层的运行机制彻...原创 2020-08-03 17:47:36 · 7732 阅读 · 1 评论 -
对random.seed()的理解
random.seed()random.seed() 会改变随机生成器的种子;传入的数值用于指定随机数生成时所用算法开始时所选定的整数值,如果使用相同的seed()值,则每次生成的随机数都相同;如果不设置这个值,则系统会根据时间来自己选择这个值,此时每次生成的随机数会因时间的差异而有所不同。昨天在看书的时候对一段代码不是很理解:import randomimport bisectS...原创 2019-09-28 11:05:22 · 58375 阅读 · 0 评论 -
对map函数的思考
今天在用到map函数的时候产生了一些问题,发现自己对于map函数的理解还是不够深刻,于是又查阅了相关的资料来学习和了解其功能,学习后写出自己的理解和看法,最主要的是它的返回值类型。map是python中一个内置的函数,map函数的使用格式一般为: map(函数名, 序列名)可以将一个或多个指定的序列根据选定的函数做映射。值得注意的是在python3中,map() 所返回的不再是一个list,...原创 2019-07-08 17:36:59 · 976 阅读 · 2 评论 -
Pygame的安装
今天安装了一个pygame废了好大力气,也遇到了很多问题,包括pip升级失败,cmd的运行…下载PygamePygame的下载网址:http://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame找到此图片的位置,安装与你运行的Python...原创 2019-02-12 00:06:52 · 982 阅读 · 2 评论