python函数

Python正则表达式,这一篇就够了!

三世轮回 提交于 2020-04-02 00:12:45
大多数编程语言的正则表达式设计都师从Perl,所以语法基本相似,不同的是每种语言都有自己的函数去支持正则,今天我们就来学习 Python中关于 正则表达式的函数。 re模块主要定义了9个常量、12个函数、1个异常,每个常量和函数猪哥 都会通过实际代码案例讲解,让大家能更直观的了解其作用! 注:为避免出现代码格式错乱,猪哥尽量使用代码截图演示哦。 一、re模块简介 聊到Python正则表达式的支持,首先肯定会想到 re 库,这是一个Python处理文本的 标准库 。 标准库 的意思表示这是一个 Python内置模块 ,不需要额外下载,目前Python内置模块大概有300个。可以在这里查看Python所有的内置模块:https://docs.python.org/3/py-modindex.html#cap-r 因为re是内置模块,所以不需要再下载,使用时直接引入即可: import re re模块官方文档:https://docs.python.org/zh-cn/3.8/library/re.html re模块库源码:https://github.com/python/cpython/blob/3.8/Lib/re.py 二、re模块常量 常量即表示不可更改的变量,一般用于做标记。 re模块中有9个常量,常量的值都是int类型! 上图我们可以看到,所有的常量都是在

Python 绑定方法与非绑定方法

柔情痞子 提交于 2020-04-01 18:17:27
定义: 绑定方法(绑定给谁,谁来调用就自动将它本身当作第一个参数传入):     1. 绑定到类的方法:用classmethod装饰器装饰的方法。 为类量身定制 类.boud_method(),自动将类当作第一个参数传入 (其实对象也可调用,但仍将类当作第一个参数传入)     2. 绑定到对象的方法:没有被任何装饰器装饰的方法。 为对象量身定制 对象.boud_method(),自动将对象当作第一个参数传入 (属于类的函数,类可以调用,但是必须按照函数的规则来,没有自动传值那么一说) 非绑定方法:用staticmethod装饰器装饰的方法    不与类或对象绑定,类和对象都可以调用,但是没有自动传值那么一说。就是一个普通工具而已     注意:与绑定到对象方法区分开,在类中直接定义的函数,没有被任何装饰器装饰的,都是绑定到对象的方法,可不是普通函数,对象调用该方法会自动传值,而staticmethod装饰的方法,不管谁来调用,都没有自动传值一说 二、绑定方法 绑定给对象的方法(略) 绑定给类的方法(classmethod)   classmehtod是给类用的,即绑定到类,类在使用时会将类本身当做参数传给类方法的第一个参数(即便是对象来调用也会将类当作第一个参数传入),python为我们内置了函数classmethod来把类中的函数定义成类方法 import settings

Python的装饰器

ⅰ亾dé卋堺 提交于 2020-04-01 12:13:15
装饰器 1、装饰器的知识点储备 """ 1、*args,**kwargs:形参中的作用汇总:*args是元组形式,**kwargs字典形式 2、*args,**kwargs:实参中的作用展开: """ # 一、储备知识 # 需求:我们要把传给wrapper的参数,原封不动的转嫁给index函数 # 1、*args和**kwargs # def index(x,y): # print(x,y) # def wrapper(*args,**kwargs): # 形参中汇总: *args=(1,2,3,4,5),**kwargs={"a":1,"b":2} # index(*args,**kwargs) # 实参中展开: index(*(1,2,3,4,5),**{"a":1,"b":2}) # index(1,2,3,4,5,a=1,b=2) # wrapper(1,2,3,4,5,a=1,b=2) # 只要语法不错就可随意传,但是此处运行后会报错,因为index(x,y) # TypeError: index() got an unexpected keyword argument 'a' # wrapper(1,y=2) # wrapper(y=2,x=1) # 2、名称空间与作用域:名称空间的“嵌套”关系实在函数定义阶段,即检测语法的时候确定的。 # 名称空间的特点

Python strip()方法

孤街浪徒 提交于 2020-04-01 08:54:17
Python strip()方法 Python 字符串 Python 字符串 描述 Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。 注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。 语法 strip()方法语法: str.strip([chars]); 参数 chars -- 移除字符串头尾指定的字符序列。 返回值 返回移除字符串头尾指定的字符生成的新字符串。 实例 以下实例展示了strip()函数的使用方法: 实例(Python 2.0+) #!/usr/bin/python # -*- coding: UTF-8 -*- str = "00000003210saishikang01230000000"; print str.strip( '0' ); # 去除首尾字符 0 str2 = " saishikang "; # 去除首尾空格 print str2.strip(); 以上实例输出结果如下: 3210saishikang0123 saishikang 从结果上看,可以注意到中间部分的字符并未删除。 以上下例演示了只要头尾包含有指定字符序列中的字符就删除: 实例 #!/usr/bin/python # -*- coding: UTF-8 -*- str = "123abcsaishikang321"

Python高级特性:迭代器和生成器

一个人想着一个人 提交于 2020-04-01 07:48:54
在Python中,很多对象都是可以通过for语句来直接遍历的,例如list、string、dict等等,这些对象都可以被称为可迭代对象。至于说哪些对象是可以被迭代访问的,就要了解一下迭代器相关的知识了。 迭代器 迭代器对象要求支持迭代器协议的对象,在Python中,支持迭代器协议就是实现对象的__iter__()和next()方法。其中__iter__()方法返回迭代器对象本身;next()方法返回容器的下一个元素,在结尾时引发StopIteration异常。 __iter__()和next()方法 这两个方法是迭代器最基本的方法,一个用来获得迭代器对象,一个用来获取容器中的下一个元素。 对于可迭代对象,可以使用内建函数iter()来获取它的迭代器对象: 例子中,通过iter()方法获得了list的迭代器对象,然后就可以通过next()方法来访问list中的元素了。当容器中没有可访问的元素后,next()方法将会抛出一个StopIteration异常终止迭代器。 其实,当我们使用for语句的时候,for语句就会自动的通过__iter__()方法来获得迭代器对象,并且通过next()方法来获取下一个元素。 自定义迭代器 了解了迭代器协议之后,就可以自定义迭代器了。 下面例子中实现了一个MyRange的类型,这个类型中实现了__iter__()方法

Python Socket Programming

泄露秘密 提交于 2020-04-01 05:18:05
本文介绍使用Python进行Socket网络编程,假设读者已经具备了基本的网络编程知识和Python的基本语法知识,本文中的代码如果没有说明则都是运行在Python 3.4下。 Python的socket功能封装在socket库中,要使用socket,记得先 import socket ,socket库的详细介绍参见 官方文档 。 创建Socket 首先创建一个socket,使用socket库中得socket函数创建。 import socket # create an INET, STREAM socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 例子中创建了一个TCP socket, socket.socket 函数的前两个参数的默认值是 socket.AF_INET 和 socket.SOCK_STREAM ,创建TCP socket时可以直接写成 socket.socket() 。 连接服务器 使用socket的 connect 函数连接到服务器,以下几种参数都是合法的。 s.connect(('localhost', 8000)) s.connect(('127.0.0.1', 8000)) s.connect(('www.baidu.com', 80)) 发送数据 发送数据有两个方法 send 和

python 小笔记

社会主义新天地 提交于 2020-04-01 04:32:54
Python 使用的是python2.7 第一部分 基础 l 输出使用 print 前面不要有空格 因为python是使用空格来对格式进行规范的一种语言 l 可以在输出的东西之间加上 , 这样可以将输出的东西分割开 l Python里面的注释是# l 在python中 变量用字母数字和_表示,且不能用数字开头;python的变量是动态变量,即没有给变量赋予变量类型 l 字符串既可以用 ‘’ 也可以 “” 但是如果两者都有,就要用转义字符 \ l 常用转义字符:\n 换行符 l 如果一个字符串包含了很多转义字符,可以在字符串前面加个 r’…’ 但是不能表示多行字符串,也不能表示包含’ and “ 的字符串 l 如果要表示多行字符串,可以用 ‘’’…’’’表示 l Python中输出中文 前面加u u’…’ 多行u’’’…’’’ raw+多行 ur’’’…’’’ 如果遇到错误 可以在py文件第一行添加注释:# -*- coding: utf-8 -*- l P.s 在输入注释 # -*- coding:utf-8 -*- 后就不用加u了 l Python把 0、 空字符’’和None看成false,其他数值和非空字符都看成True l And 和 or 运算的一条重要法则:短路计算: l 在计算 a and b 时,如果a是false,则根据与运算法则,整个结果必定为False,

面向对象的进阶(组合和继承)

感情迁移 提交于 2020-04-01 03:22:27
初始面向对象之后,我们来学习面向对象的三大特性以及面向对象的其他补充方面的知识。 组合 组合只有一个例子因为组合只作为上一章的补充内容 #老师 课程 生日 class Course: def __init__(self,name,period,price): self.name = name self.period = period self.price = price class Birth: def __init__(self,year,month,day): self.year = year self.month = month self.day = day class Teacher: def __init__(self,name,salary,boy_friend,python): self.name = name self.salary = salary self.bf = boy_friend self.course = python python = Course('python','6 months',20000) egg = Teacher('egon',200,'yuan',python) print(egg.bf) print(egg.name) print(egg.course.name) egg_birth = Birth(1965,2,2) print

python基础学习笔记(十)

会有一股神秘感。 提交于 2020-04-01 02:09:16
魔法方法、属性 ------------------------ 准备工作 为了确保类是新型类,应该把 _metaclass_=type 入到你的模块的最开始。 class NewType(Object):   mor_code_here class OldType:   mor_code_here 在这个两个类中NewType是新类,OldType是属于旧类,如果前面加上 _metaclass_=type ,那么两个类都属于新类。 构造方法 构造方法与其的方法不一样,当一个对象被创建会立即调用构造方法。创建一个python的构造方法很简答,只要把init方法,从简单的init方法,转换成魔法版本的_init_方法就可以了。 class FooBar: def __init__(self): self.somevar = 42 >>> f =FooBar() >>> f.somevar 42 重写一个一般方法 每一个类都可能拥有一个或多个超类(父类),它们从超类那里继承行为方法。 class A: def hello(self): print 'hello . I am A.' class B(A):   pass >>> a = A() >>> b = B() >>> a.hello() hello . I am A. 因为B类没有hello方法,B类继承了A类,所以会调用A

python函数积累

ε祈祈猫儿з 提交于 2020-03-31 20:06:32
给定前后字符串获取中间字符串 def GetMiddleStr(content,startStr,endStr): startIndex = content.index(startStr) if startIndex>=0: startIndex += len(startStr) endIndex = content.index(endStr) return content[startIndex:endIndex] cookie字符串转换为字典 def stringToDict(cookie): itemDict = {} items = cookie.split(';') for item in items: key = item.split('=')[0].replace(' ', '') value = item.split('=')[1] itemDict[key] = value return itemDict 来源: https://www.cnblogs.com/BobHuang/p/12607357.html