
python基础
Mark Huo
With great power comes great responsibility
展开
-
pyexcel的常用方法
pyExcel的常用方法,处理excel官方文档:http://docs.pyexcel.org/en/latest/api.html介绍import pyexcel"""官方网站: http://docs.pyexcel.org/en/latest"""def read_excel(file_path): # 从文件中读取excel book = pyex...原创 2020-01-14 14:04:13 · 1177 阅读 · 0 评论 -
python常用小工具
找出数字import reyear = '2017年'year = re.findall('\d*',year)[0]print(year)替换括号内内容import ret = '国有及国有控股建筑业企业利润(2017年一季度)'z = '国有及国有控股建筑业企业资产负债情况'print(re.sub('(\S*)', '', t))print(re.sub('(\S*...原创 2019-10-23 16:01:26 · 726 阅读 · 0 评论 -
面试准备(五)二分法查找
二分法查找二分法是当数据量很大时适宜采用,但是采用二分法的前提是,数据是有序不重复的。二分法又称折半查找,故名思意就是就是从中间开始比较查找,其基本思路是:假设数据是按升序排序的,对于给定值 x,从序列的中间位置开始比较,如果当前位置值等于 x,则查找成功;若 x 小于当前位置值,则在数列的前半段中查找;若 x 大于当前位置值则在数列的后半段中继续查找,直到找到为止。所以二分法查找的速度比较快,...原创 2019-06-25 21:45:36 · 346 阅读 · 0 评论 -
面试准备(三)-设计模式
单例模式new 和 init在讲单例设计模式之前,我们有必要先了解一下new和init的区别原文参考 https://www.cnblogs.com/suntp/p/6445286.htmlclass A(object): def __init__(self,*args, **kwargs): print "init A" def __new__(cls...翻译 2019-06-25 21:44:00 · 217 阅读 · 0 评论 -
python函数的递归调用
python函数的递归调用递归,一个函数在其内部调用自身计算 n!=n*(n-1)*…1 (n的阶乘)def fact_item(n,s=1): if n == 1: return s return fact_item(n-1,s*n) #尾调用优化print(fact_item(5))在递归调用时要注意栈的溢出为了防止栈溢出,需要进行尾调用...转载 2019-03-12 14:41:28 · 1919 阅读 · 0 评论 -
python中的文件处理
python中的文件处理文件的打开方式r ,只读模式【默认模式,文件必须存在,不存在则抛出异常】w,只写模式【不可读;不存在则创建;存在则清空内容】a, 之追加写模式【不可读;不存在则创建;存在则只追加内容】读取file = open('test',encoding='UTF-8') # 以UTF-8的方式打开文件data = file.read() #print(da...原创 2019-03-13 17:08:20 · 465 阅读 · 0 评论 -
python-----网络编程----udpsocket
udp简单通信udp服务端与tcp需要握手建立数据流不同的是,UDP是不需要建立数据流的,因此不需要listen设置最大半连接挂起数from socket import *ip_sort = ('127.0.0.1',8090)buffer_size = 1024udp_server = socket(AF_INET,SOCK_DGRAM) # 数据报式的套接字udp_se...转载 2019-04-22 10:51:11 · 134 阅读 · 0 评论 -
python---网络编程--socket与socketserver
TCP协议的三次握手所谓三次握手(Three-way Handshake),是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。客户端发送一个TCP的SYN标志位置1的包指明客户打算连接的服务器的端口,以及初始序号X,保存在包头的序列号(Sequence Number)字段里 (SYN=1,Seq=x)服务器发回确认包(ACK)应答。即SYN标志位和ACK标志位均为1同时,将确...转载 2019-04-20 16:57:28 · 190 阅读 · 0 评论 -
python-面向对象--self
self用法总结https://blog.youkuaiyun.com/CLHugh/article/details/75000104静态语言和动态语言对于静态语言(例如Java)来说,如果需要传入Animal类型,则传入的对象必须是Animal类型或者它的子类,否则,将无法调用run()方法。对于Python这样的动态语言来说,则不一定需要传入Animal类型。我们只需要保证传入的对象有一个r...转载 2019-04-17 23:21:41 · 315 阅读 · 0 评论 -
面试准备(四)排序算法
冒泡排序和插入排序先用java写一遍package sample_test;import java.util.Random;public class Sort { public static void main(String[] args) { Sort sort = new Sort(); int[] arr = sort.generateArr(10); for (i...原创 2019-06-25 21:44:44 · 129 阅读 · 0 评论 -
面试题准备(概念类型)一
文章目录面试题准备(概念类型)一python2和python3的区别python值为False的值python中的可变类型与不可变类型深拷贝与浅拷贝正则表达式的贪婪匹配与懒惰匹配闭包面向对象-特点广度优先与深度优先断言 assert生成器与迭代器为什么list、dict、str等数据类型不是Iterator?yield与yield from面试题准备(概念类型)一python2和python3...原创 2019-06-28 13:33:37 · 605 阅读 · 0 评论 -
面试题准备(概念部分) 二
文章目录概念部分HTTP请求与响应请求响应RestframeWork风格Rest风格规范优点基本概念MVC与MTVMVCDjgano的MTVMVVM模式(Model View ViewModel)单向绑定与双向绑定关系型数据库(SQL)与非关系型数据库(NOSQL)的区别关系型数据库事务所遵循的四大特性(AC)非关系型数据库的CAP理论概念部分HTTP请求与响应https://www.ji...翻译 2019-06-28 13:34:59 · 179 阅读 · 0 评论 -
面试算法题总结 - 一
文章目录快速排序法LRU缓冲算法比较两个二叉树是否相等快速排序法思想,每次随机取一个数,将大于其的放在右边,小于或等于其的放在左边,如此递归def quicksort(arr): if len(arr) <= 1 or len(list(filter(lambda a:a==arr[0],arr))) == len(arr): return arr m...翻译 2019-07-15 15:21:54 · 219 阅读 · 0 评论 -
面试题算法题总结 二
文章目录字符串处理链表二进制字符串处理给定一个字符串,找到最长子字符串的长度,要求子字符串中所有字符不重复。Example:Input: “abcabcbb”Output: 3Explanation: 满足条件的最长子字符串为 “abc”, 长度为3.使用暴力破解法,这是一种比较容易理解的方法,但是执行效率偏低 - 思路是我们遍历整个字符串,依次找出所有符合条件的字串, - 找...翻译 2019-07-15 15:25:43 · 160 阅读 · 0 评论 -
面试总结 三
python中的面向对象封装:封装是封装的一个对象的属性和行为,用于描述这个对象,并减少代码的冗余。继承:python中可以继承多个类,子类可以调用父类中的方法,动态语言决定了传入的参数只需要包含run方法就行,不一定要严格使用Animal类型。多态多态是对象的多态,多父类和子类含有同名方法时,根据的调用对象,决定调用的方法python中的作用域L (Lo...转载 2019-07-16 17:08:40 · 116 阅读 · 0 评论 -
Python操作PostgreSql数据库(基本的增删改查)(一)
文章目录Python操作PostgreSql数据库(基本的增删改查)psycopg2简单的增删改查连接增查改删补充,增加的字段带有时间格式Python操作PostgreSql数据库(基本的增删改查)操作数据库最快的方式当然是直接用使用SQL语言直接对数据库进行操作,但是偶尔我们也会碰到在代码中操作数据库的情况,我们可能用ORM类的库对数控库进行操作,但是当需要操作大量的数据时,ORM的数据显的...翻译 2019-09-29 13:33:06 · 5732 阅读 · 1 评论 -
Python操作PostgreSql数据库(批量的增删改查)(二)
文章目录Python操作PostgreSql数据库(批量的增删改查)psycopg2批量操作增1.数据有2种格式Python操作PostgreSql数据库(批量的增删改查)上一节讲到了python操作pg的基本用法,但这并不能满足我们操作大量数据的美好心愿,这一节主要讲如果使用pyhton进行批量的增删改查操作psycopg2官方文档传送门: http://initd.org/psyco...翻译 2019-09-29 13:47:53 · 4486 阅读 · 0 评论 -
Python操作PostgreSql数据库(事务操作与连接池)(三)
文章目录Python操作PostgreSql数据库(事务操作与连接池)(三)psycopg2使用事务使用with语句进行事务操作示例数据库连接池psycopg2 提供的三种连接池Python操作PostgreSql数据库(事务操作与连接池)(三)仅仅会批量的增删改查是不够的,我们还必须懂得使用事务操作,并使用数据库连接池,进行更高性能的操作psycopg2官方文档传送门: http://...翻译 2019-09-29 14:24:26 · 4997 阅读 · 0 评论 -
Python操作PostgreSql数据库(其他问题整理)(四)
文章目录Python操作PostgreSql数据库(事务操作与连接池)(四)psycopg2关于相同游标执行execute_batch会不会影响fetchmany的结果问题测试测试相同游标执行2次Execute,fetchmany的结果集是否会有影响第一次执行一次select,第二次执行insert第一次执行一次select,第二次也执行selectPython操作PostgreSql数据库(事...翻译 2019-09-29 14:55:05 · 1740 阅读 · 0 评论 -
python----面向对象---内置方法
内置方法1.dir :使用dir获取一个对象的属性和方法print(dir('abc'))print(dir(husky))['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '...转载 2019-04-17 23:06:07 · 272 阅读 · 0 评论 -
python--模块相关
time模块(参考链接)https://finthon.com/python-time/os模块https://blog.youkuaiyun.com/weixin_42223833/article/details/86253032https://blog.youkuaiyun.com/taolusi/article/details/81074106https://www.cnblogs.com/yuan...转载 2019-04-12 19:46:55 · 175 阅读 · 0 评论 -
python基础-列表、元组、字典(一)
python基础-列表、元组、字典(一)python 列表python列表的定义获取列表的长度列表的增删改查python 列表python列表的定义cityList = ['shangHai','xiAn','chongQing',12,['19',10]]列表种可以包含各种类型,也可以嵌套列表,使用下标获取列表的元素,也可以使用切片取值,切片取值的结果也是一个列表获取列表的长度...原创 2019-03-09 17:17:10 · 314 阅读 · 0 评论 -
python基础-字符串(二)
python基础-字符串(二)字符串的处理字符串的切片python内置函数字符串的处理字符串的切片test[0,1] 取字符串下标[0,1) 左闭右开test = "Django"print(test[0:1]) # Dtest[0:-1] 取0开始倒最后一位(不含最后一位) 左闭右开print(test[0:-1]) # Djangtest[0:] 取从0...原创 2019-03-09 14:33:43 · 136 阅读 · 0 评论 -
python字符串(一)
python字符串python字符串(一)字符串内置方法python字符串(一)字符串内置方法capitalize() 首字母大写test = 'django'print(test.capitalize()) #Djangolower( ) 全小写 islower()判断全小写upper( ) 全大写 isupper()判断全大写casefol...原创 2019-03-08 21:42:13 · 286 阅读 · 0 评论 -
Python基础知识
python基础知识总结变量的命名规范python注释python变量类型NumberBoolean其他python格式化输出也可以作运算符运算,end='' 表示取消自动换行也可以写为python输入python添加延时功能python中的运算符python变量赋值使用python产生随机数pycharm常用快捷键变量的命名规范不能以数字开头不能是python中的关键字python注...原创 2019-03-07 20:18:59 · 1793 阅读 · 0 评论 -
面试准备(一)面向对象(基础概念相关)
基础概念相关python中的类属性、实例属性、类方法、实例方法尾递归调用列表生成式生成器的两种方式迭代器高阶函数函数参数闭包装饰器偏函数面向对象-继承那为啥不是ABCD呢?import的使用python类中的内置属性1.__slots__属性2.@property 修饰符,将方法变成属性调用3. __str__类似java中的tostring,重写__repr__达到不敲print直接调用对象输出...原创 2019-06-13 12:54:19 · 191 阅读 · 0 评论 -
IO模型
事件驱动编程思想:有一个事件(消息队列)有事件时,会向队列中添加事件会有一个循环,不断从队列中取出事件,根据不同的事件,调用不同的函数。事件(消息)一般都各自保存各种的处理函数指针,这样,每个消息都有独立的处理函数。事件驱动编程是一种编程范式,这里的程序执行由外部事件决定,它的特点是包含一个事件循环,当外部事件发生时使用回调机制来触发相应的处理。引入概念1.用户态和内核态...转载 2019-06-13 12:52:19 · 238 阅读 · 0 评论 -
socketserver并发
使用socketserver创建一个服务的步骤1 创建一个request handler class(请求处理类),合理选择StreamRequestHandler和DatagramRequestHandler之中的一个作为父类(当然,使用BaseRequestHandler作为父类也可),并重写它的handle()方法。2 实例化一个server class对象,并将服务的地址和之前创建...转载 2019-06-13 12:50:52 · 347 阅读 · 0 评论 -
面试准备(二)网络与多线程
网络与多线程TCP与UDP的区别TCP区别了解Socketsocket定义使用socketserver实现并发多进程与多线程多线程1.创建线程的2种方式2.守护线程python中的GIL锁同步锁死锁与递归锁死锁递归锁信号量Event事件-进行条件同步Condition复杂线程的逻辑同步线程通信,队列线程池多进程1.创建进程的2种方式僵尸进程与孤儿进程守护进程进程同步锁进程通信,队列和管道使用Joi...原创 2019-06-13 12:49:33 · 741 阅读 · 0 评论 -
python 基础练习题(一)
python 基础练习题(一)1.执行 Python 脚本的两种方式 ?命令行调用 python 1.pypython解释器2.简述位、字节的关系位(bit),数据存储是以“字节”(Byte)为单位,数据传输是以大多是以“位”(bit,又名“比特”)为单位,一个位就代表一个0或1(即二进制),每8个位(bit,简写为b)组成一个字节(Byte,简写为B),是最小一级的信息单位,是计算...翻译 2019-06-03 21:57:00 · 1241 阅读 · 0 评论 -
python基础-列表、元组、字典(二)
python基础-列表、元组、字典(二)python元组(tuple)列表和元组的区别列表、元组、字符串的相互转换元组中的方法python元组(tuple)列表和元组的区别异列表中的元素可以被修改、增加元组中的一级元素不可被修改,增加同1.可以通过下标取值2.可以切片3.可以使用for循环遍历4.都是有序的可迭代对象列表、元组、字符串的相互转换cityTuple...原创 2019-03-10 12:50:20 · 209 阅读 · 0 评论 -
python--装饰器
装饰器的意义:为其他函数添加新的功能装饰器的原则:不修改被修饰函数的源代码不修改被装饰函数的调用方式装饰器=高阶函数+函数嵌套+闭包闭包:相关参数和变量都保存在返回的函数中闭包def add_wrapper(a,b): def add(): return a+b return addf = add_wrapper(1,2)print(...原创 2019-04-11 15:33:31 · 93 阅读 · 0 评论 -
python中的其他内置函数介绍
zip函数list(zip(('a','b','c'),(1,2,3)))[('a', 1), ('b', 2), ('c', 3)]将2个不同的序列一一对应变成一个列表max函数max()可以比较可用迭代器遍历的所有类型,从每个元素的第一个位置开始比较max() 如果比较的是字符串,则按照ASCII码值的顺序比较max()若同时比较字符串和数字—异常:类型不统一1.使...原创 2019-03-13 14:56:58 · 108 阅读 · 0 评论 -
python map、filter、reduce函数
在说明map、reduce函数之前,先引入匿名函数的概念python lambda匿名函数使用lambda表达式可以简化函数为匿名函数def add(a,b): print(a+b)func = lambda a,b:a+badd(10,5) # 15print('func',func(10,5)) # func 15高阶函数的概念map、reduce、f...原创 2019-03-12 15:42:48 · 371 阅读 · 0 评论 -
python 全局变量和局部变量
python 全局变量和局部变量 请参阅https://blog.youkuaiyun.com/niedongri/article/details/78518336补充 nonlocal 关键字nonlocal 关键字指代上一个父作用域中的变量name='django' #全局变量namedef changeName(): name = 'sherlock' #局部变量 nam...转载 2019-03-12 13:56:10 · 122 阅读 · 0 评论 -
python全局变量和局部变量
python参数传递参数的调用参数组 **字典,*列表参数的调用位置参数def text(x,y,z): print('text ',x,y,z)text(1,2,3)关键字参数text(y=0,x=1,z=2)# text 1 0 2位置参数必须在关键字参数左边text(1,3,z=3) # 正确text(1,3,y=2) # 错误,位置参数必...原创 2019-03-11 14:52:45 · 202 阅读 · 0 评论 -
python字符串格式化
具体可参考博文https://www.cnblogs.com/zyq-blog/p/5946905.htmlhttps://blog.youkuaiyun.com/qtlyx/article/details/77102851原创 2019-03-11 13:33:52 · 95 阅读 · 0 评论 -
python基础-集合
python基础-集合集合的定义集合的内置方法集合关系运算集合的定义由不同元素组成(不可重复)无序集合中的元素必须是不可变类型,集合是可变类型,可以使用frozenset定义不可变集合集合可以作为字典的Key# 可变集合,允许添加 删除元素setTest = {1,2,3,6,5}# 不可变集合set3 = frozenset({1,2,5,3,7})set4 = froz...原创 2019-03-11 13:26:40 · 134 阅读 · 0 评论 -
python基础-列表、元组、字典(三)
python基础-列表、元组、字典(三)python字典(dictionary)定义字典的增删改查字典的内置方法python字典(dictionary)定义 cityDic = {"China":1,"USA":2,"Japan":3,"UK":4,"France":5}类似于JSON字符串,可以进行嵌套列表不能作为字典的Key,因为列表是可以被修改的元组能作为字典的Key,因...原创 2019-03-10 14:06:06 · 220 阅读 · 0 评论 -
个人吐血整理,完全弄懂描述符到底是神马
个人吐血整理,完全弄懂描述符描述符描述符的定义前面的铺垫-各个优先级描述符的使用描述符配合类的装饰器控制实例属性类型使用描述符自定制@porperty实例属性的优先级补充补充描述符应用,自定制@classmethod,@staticmethod描述符描述符的定义描述符的作用是用来代理另外一个类的属性的 (必须把描述符定义成这个类的类属性,不能定义到构造函数中)前面的铺垫-各个优先级...原创 2019-06-12 15:59:08 · 8514 阅读 · 4 评论