python学习
啊啊啊啊懒
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
python中如何完成配置文件的读写
什么是配置文件当程序没有任何配置文件时,它对外也就是全封闭的。这种情况下一旦程序需要修改一些参数必须要修改程序代码本身并重新编译,为了让程序出厂后还能根据需要进行必要的配置,所以要用配置文件配置文件有很多种,如INI配置文件,XML配置文件,cfg配置文件,还有就是可以使用系统注册表等。配置文件结构大体相似,这里以INI配置文件为例。INI文件结构需要注意一下几点:配置文件由多个部分组成...原创 2020-04-17 21:56:25 · 764 阅读 · 0 评论 -
如何解析命令行命令--sys、optparse
方法一:sys.argv[]sys.argv[]是用来获取命令行参数的,sys.argv[]是一个从程序外部获取参数的桥梁,由于我们从外部取得的参数可以是多个,所以获得的是一个列表(list),也就是说sys.argv其实可以看作是一个列表,所以才能用[]提取其中的元素。其第一个元素是程序本身,随后才依次是外部给予的参数。下面我们通过一个极简单的t.py程序的运行结果来说明它的用法。使用sy...原创 2020-04-15 13:54:17 · 401 阅读 · 0 评论 -
使用socketserver实现客户端和服务器端简单的并发交互
#服务器端import socketserverclass MyServer(socketserver.BaseRequestHandler): def handle(self):#这个函数式必须要写的 print('conn is',self.request) #conn print('addr is',self.client_address) #a...原创 2020-04-04 22:25:39 · 332 阅读 · 0 评论 -
粘包现象
补充知识首先需要掌握一个socket收发消息的原理在我们使用socket的时候,两个网络之间是怎么具体操作的我们先不看,只先关注服务器端和客户端。当服务器端想客户端发送消息的时候,客户端得到的消息是先存放在自己的缓存中的,然后通过在缓存中取而得到最终的消息,反之一样。粘包现象粘包现象产生的原因第一种:发送端需要等缓冲区满才发送出去,造成粘包(发送数据时间间隔很短,数据也很小,会合到一...原创 2020-04-01 22:37:40 · 221 阅读 · 0 评论 -
socket实现简单的服务器端和客户端的交互
基于socket在本机上实现最简单的服务器端和客户端的交互,在实现过程中遇到问题:服务器端和客户端都在运行的时候,客户端突然停止,服务器端会报错:Traceback (most recent call last): File "E:/python_learn/python_cord/day29/服务器.py", line 41, in <module> data=con...原创 2020-03-31 12:36:27 · 1238 阅读 · 0 评论 -
描述符
概念描述符本质就是一个新式类,在这个新式类中,至少实现了__get__(),__set__(),__delete__()中的一个,这也被称为描述符协议。__get__():调用一个属性时,触发__set__():为一个属性赋值时,触发__delete__():采用del删除属性时,触发用途描述符的作用是用来代理另外一个类的属性的(必须把描述符定义成这个类的类属性,不能定义到构造函数中...原创 2020-03-28 14:26:56 · 151 阅读 · 0 评论 -
with obj as f读取文件
with obj as f: '代码块'1、with obj ----->触发obj.__enter__(),拿到返回值2、as f -------->f=返回值3、with obj as f 等同于f=obj.__enter__()4、执行代码块一:没有异常的情况下,整个代码块运行完毕后去触发__exit__,它的三个参数都为None二:有异常的情况下,从异常出现的位置...原创 2020-03-25 20:32:20 · 305 阅读 · 0 评论 -
class提供的内置方法
这里写目录标题回顾 :自省class提供的内置函数(不重写则执行系统默认的)`__getattr__、__setattr__、__delattr__``__getitem__、__setitem__、__delitem__``__get__、__set__、__delete__``__str__、__repr__``__slots__``__doc__``__module__、__class__`...原创 2020-03-25 13:21:24 · 464 阅读 · 0 评论 -
getattribute
当不自己写getattr方法和getattribute方法时,触发的是自带的。抛出的异常是系统自己的信息class Foo: def __init__(self,x): self.x=xf=Foo(10)print(f.x)f.xxxx#不存在的属性访问,触发__getattr__结果:10Traceback (most recent call last):...原创 2020-03-20 21:27:17 · 538 阅读 · 0 评论 -
反射 attr方法
概念**反射:**主要是指程序可以访问、检测和修改它本身状态或行为的一种能力(自省),四个可以实现自省的函数:hasattr(object,name)getattr(object,name,default=None)setattr(x,y,z)delattr(x,y)四个函数的用法class BlackMedium: feture='Ugly' def __init...原创 2020-03-20 11:39:54 · 150 阅读 · 0 评论 -
封装
第一层面的封装:类就是一个麻袋,这本身就是一种封装第二层面的封装:勒种定义私有的,只在类的内部使用,外部无法访问(要充分考虑好内和外,为用户设计好访问接口)单下划线:双下划线开头的属性在继承给子类时,子类是无法覆盖的(原理是基于python自动做了双下划线开头的名字的重名命工作)class Room: _star='adasda' __s ='11wwwwww' d...原创 2020-03-19 20:54:35 · 133 阅读 · 0 评论 -
接口类
引言:在我们日常生活中用电脑存储数据时,会用到磁盘存储 文件存储 存储器存储等,每种存储方式都会有读数据和写数据两种操作,那么读和写操作可以提出来单写成一个类。剩下三个类去继承他的方法即可。但是要注意:我们需要这三种方法必须都有读写两种方法,这时就需要用到接口类。例:首先演示一个没有用到接口类的,在Mem类中只实现了read()方法,程序可执行class All_file(): ...原创 2020-03-18 13:18:56 · 139 阅读 · 0 评论 -
logging模块(二)(logger对象)
logger对象logging.basicConfig()(用默认日志格式(Formatter)微日志系统建立一个默认的流处理器(StreamHandler),设置基础配置(如日志级别等)并加到root logger(根Logger)中)这几个logging模块级别的函数,另外还有一个模块级别的函数式logging.getLogger([name])(返回一个logger对象,如果没有指定...原创 2020-03-15 15:06:10 · 531 阅读 · 1 评论 -
logging模块(一)
这种方法是的信息只能在控制台和文件两种方式中选择一个进行显示,而且格式需要自己通过format中的参数进行调整。在logging.basicConfig()函数中可通过具体参数来更改logging模块默认行为,可用参数有:filename:用指定的文件名创建FiledHandler(后面会具体讲handler的概念),这样日志会被存储到指定文件中filemode:文件打开方式,在指定了fil...原创 2020-03-15 10:40:00 · 1781 阅读 · 0 评论 -
re模块终篇
re模块下的常用方法findall是把能匹配到的所有放到一个列表里面放到内存中,一执行就能拿到结果例子在上一篇博客里search函数会在字符串内查找模式匹配,直到找到第一个匹配然后返回一个对象通过调用group()方法得到匹配的字符串例:# searchprint(re.search("(?P<name>[a-z]+)","alex36wusir34sdfahk33"...原创 2020-03-14 20:04:40 · 185 阅读 · 0 评论 -
re模块之元字符(正则匹配)
字符匹配(普通字符,元字符):1、普通字符:大多数字符和字母都会和自身匹配2、元字符:^$*+?{}[]|()具体元字符功能介绍:1、. 通配符import reprint(re.findall("alex","adsfdsalixflj"))print(re.findall("a..x","adsfdsaliaxflj"))print(re.findall("^a..x","...原创 2020-03-13 21:46:42 · 395 阅读 · 0 评论 -
python 绝对路径
在编写代码时我们会遇到下面的问题:执行文件bin在le目录下,其他想调用的文件在module1目录下,这时要用到os模块和sys模块。为了使代码通用性增强可以使用一下代码:import sysimport osBASE_DIR=os.path.dirname(os.path.dirname(__file__))sys.path.append(BASE_DIR)from modu...原创 2020-03-11 23:13:08 · 308 阅读 · 0 评论 -
python import模块时有错误红线
前情提要概念:在一个文件中代码越长越不容易维护,为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。在python中,一个py文件就称之为一个模块(Module)好处:1、最大的好处是提高了代码的可维护性2、编写代码不必从零开始。当一个模块编写完毕,就可以在其他地方调用分类:1、python’标准库 ...原创 2020-03-09 19:20:51 · 6598 阅读 · 0 评论 -
TypeError: string indices must be integers
当有input().strip(控制台输入)的时候,要注意出现:TypeError: string indices must be integers(解决办法在最后哟)例: 我想输入字典类型的数据,并传入change(data)函数中,通过该数据中的关键字‘backend’找到他对应的值。我输入的数据是:{'backend':'www.oldboy1.org','record':{'se...原创 2020-03-07 19:02:19 · 1581 阅读 · 0 评论 -
生成器和迭代器(二)
- 生成器函数语法上和函数类似:只不过生成器用yield语句返回一个值,而常用函数使用return语句返回一个值。注:yield可以保存状态,不同于return执行一次整个函数就结束掉了。yield可以返回一个函数值,然后下一次调用next,可以从当前接着往下走。每next一次 从当前位置开始到下一次yield位置- 自动实现迭代器协议:对于生成器,python会自动实现迭代器协议,...原创 2020-03-01 18:34:37 · 108 阅读 · 0 评论 -
生成器和迭代器(一)
迭代器和可迭代对象的关系迭代器就是可迭代对象只要遵循迭代器协议生成的数据对象就是可迭代对象例:列表,本身不遵循迭代协议(假若遵循了,那么这个列表下直接有一个list()方法)通过调用__iter__(方法)得到可迭代对象l = ['die','asd','zxc','ddd']iter_l=l.__iter__()print(iter_l)结果:<list_iterat...原创 2020-02-28 15:28:36 · 106 阅读 · 0 评论 -
for循环
python中强大的for循环机制for循环的本质:循环所有对象,全都是使用迭代器协议。for循环两大功能:1、先把你要遍历的数据类型调用它内部的iter方法,把它转换成可迭代对象,只要是可迭代对象就有next方法2-、不可能会一直next下去,超出范围它会抛出一个异常,所以他的第二个功能是帮你捉到这个异常并终止迭代例:1、集合(它是无序的,没有下标)while通过下标进行循环的方法...原创 2020-02-26 22:43:33 · 236 阅读 · 0 评论 -
Python函数中*args和**kwargs
函数中的*args **kwargs的区别1、“ * ”是列表 “ ** ”是字典2、def test(x,*args **kwargs)的位置是固定的原创 2020-02-24 13:42:27 · 250 阅读 · 0 评论 -
函数作用域
有嵌套函数的时候有return x的返回x没有的则为none原创 2020-02-23 22:46:29 · 114 阅读 · 0 评论 -
python 字符串终篇
python 字符串终篇1、 必须要知道的七种函数join split find strip upper lower replace2、 小技巧索引、下标、获取字符创中的某一个字符test = "alex"#索引、下标、获取字符创中的某一个字符v = test[3]print(v)#切片v2 = test[0:-1]#0=< <1print(v2)...原创 2020-01-07 11:12:31 · 141 阅读 · 0 评论 -
python 字符串(二)
python 字符串(二)# expandtabs,断句6test = '1234567\t89'v = test.expandtabs(6)print(v,len(v))结果:1234567 89 14#expandtabs,断句20#只要出现\t了前面和后面就都不找了,只要加起来够6就行test0 = "username\temail\tpassword\nlaiy...原创 2020-01-07 11:04:15 · 169 阅读 · 0 评论 -
python 字符串操作(一)
python 字符串操作(一)对字符串操作的函数(仅举几个):def capitalize(self):...#首字母大写def center(self,width,fillchar=None):...def count(self,sub,start=None,end=None):...注:调用函数时,括号里是否需要写东西:只有self时,不用写有self和其他时:括号里必须写的...原创 2020-01-03 15:35:36 · 125 阅读 · 0 评论
分享