![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
Imagination丶
coding~
展开
-
【数据结构与算法】Python实现、堆、栈、数组、二叉树、链表、队列
1、把二叉树转换为双向链表:import syssys.setrecursionlimit(3000) # 修改最大递归深度为3000,默认为1000实际为998class BiTNode: def __init__(self): self.data = None self.lchild = None self.rchild = Noneclass Test: def __init__(self): self.pHead = None # 双向链表的头结点 s原创 2021-02-16 18:44:43 · 565 阅读 · 1 评论 -
【剑指offer】Python面试算法刷题汇总
1、把字符串转换成整数:# -*- coding:utf-8 -*-''' 函数功能:输入字符串转整数,不能使用str()和int()函数 'saaf12425' 返回0 '' 返回0 '124' 返回124 '+123' 返回123 '-321' 返回-321 '''class Solution: def StrToInt(self, s): # write code here原创 2021-02-16 11:32:43 · 546 阅读 · 2 评论 -
Python基础知识总结(常见问题与知识点)
1.举例说明zip()函数用法:传入两个可迭代对象,将对象中的元素对应打包成一个元组,返回由这些元组组成的列表(列表长度由传入的可迭代对象最短长度确定)a = [1, 2, 3]b = [4, 5, 6]c = [7, 8, 9, 10]z = zip(a, b) # 返回 [(1, 4), (2, 5), (3, 6)]z = zip(a, c) # 返回 [(1, 7), (2, 8), (3, 9)] 长度由最短可迭代对象确定z = zip(*z) # zip的逆过程,还原创 2020-09-12 15:41:04 · 1568 阅读 · 2 评论 -
Python类和函数(私有变量、私有方法、变量作用域、继承和多态)
Python类一.Python类中的私有变量和私有方法:在Python中可以通过在属性变量名前加上双下划线定义属性为私有属性特殊变量命名:4、私有变量和属性只在自己的类中使用,在实例化对象中不能调用;受保护类型的则可以实例化调用也可以修改对于上面访问私有变量和私有方法报错的方法,可以这样访问:5、init的私有变量在实例化对象中不能修改,init的受保护变量在实例化对象中可以修改;其它普通属性可以任意修改,只对于本次实例化的对象(新的实例化对象值不影响)二.继承和多态1.继承可以得原创 2020-09-12 14:56:34 · 980 阅读 · 0 评论 -
Python网络编程(Socket套接字、TCP粘包问题)
Python网络编程一.是一种c/s通信Client客户端:用的时候才运行Server服务器:一直运行等待客户端连接二.b/s:是c/s架构的一种统一入口,例如各种小程序和公众号三.想要实现通信就要有网卡和网线:1.网卡上有全球唯一的mac地址2.4个点分十进制:4个8位二进制数从0.0.0.0-255.255.255.2553.ip地址 保留字段 192.168.x.x4.127.0.0.1本地回环地址(自己找自己)四.Ip地址:一台机器在网络上的位置,有公网ip和局域网ip五.端原创 2020-09-12 14:37:22 · 502 阅读 · 0 评论 -
Python面向对象(继承、多态、封装、传参方式、鸭子类型、局部变量)
Python面向对象:1.类的属性可以通过实例化对象动态添加2.传参方式:1)所谓模子就是类抽象的2)对象 = 类名()3)过程:(1)类名():首先会创造出一个对象,创建了一个self变量(2)调用init方法,类名括号里的参数会被这里接收(3)执行init方法(4)返回self对象,self就是一个特殊的大字典3.类中的局部变量,可变数据类型修改是共享的,不可变数据类型修改仅限于实例化对象类中的局部变量可以通过类名来访问4.一个类的定义不一定要__init__5.面向原创 2020-09-12 14:31:03 · 934 阅读 · 0 评论 -
Python基础(可变数据类型不能做函数参数、装饰器、剥皮函数、时间间隔)
1.可变数据类型不能做函数参数:参数会动态改变2.打乱列表内容:3.装饰器:外层函数outer的参数是一个函数f,内层函数inner调用外层函数的参数(函数f)然后返回这个参数的结果,外层函数返回值为内层函数4.剥皮函数:把[1, 2, 3, [4, 5], [6, [7, 8]], 9]列表里的嵌套列表元素拿出来5.时间间隔:...原创 2020-09-12 14:07:56 · 293 阅读 · 0 评论 -
python基础总结 异常处理
常见的错误类型:1.语法错误(不可处理) 2.逻辑错误(可做异常处理)错误:1/0name2+'3'[][3]{}['k']input() : 输入int('a')程序一旦发生错误,就从错误的位置停下来,不再执行后面的内容异常处理结构:try: # 待处理代码块except: # 异常处理else: # 没有异常时执行finally: ...原创 2019-10-11 16:33:20 · 145 阅读 · 0 评论 -
python 序列化与反序列化
python的序列化模块:jsondumps:从数据类型到字符串的过程loads:从字符串到数据类型的过程dump:文件操作,需要一个文件句柄来使用,序列化loads:文件操作,操作一个文件的句柄,load不能多次load,反序列化pickle方法和josn一样,但是dump和load的时候文件是 rb 或者 wb 打开的支持python的所有数据类型shelveo...原创 2019-10-10 16:55:27 · 131 阅读 · 0 评论 -
python split分割多线程的堆和栈 导包问题
输入的分割使用split() 可以指定分隔符和分割次数,但是一次只能指定一个分隔符使用re.split() 可以指定多个分隔符,re.split(’[多个分隔符]’,待分割的字符串)输入以空格或者逗号 ,分割对输入的每个数字转为整数列表list(map(int, re.split(’[ ,]’,input())))1 2 3 4 5,6,7,8[1, 2, 3, 4, 5, 6...原创 2019-09-08 14:08:18 · 407 阅读 · 0 评论 -
python 堆(heapq模块)topK问题
python中的堆python中没有独立的堆这个数据结构,但是有一个包含堆操作函数的模块(heapq)函数功能heappush(heap, x)将x压入堆中heappop(heap)从堆中弹出最小元素heapify(heap)让列表具备堆特征heapreplace(heap, x)弹出最小元素,并将x压入堆中nlargest(n, ite...原创 2019-09-08 10:13:51 · 1718 阅读 · 0 评论 -
python flask请求对象线程隔离
flask框架多线程隔离调试环境:客户端发送10个请求,flask : app.run 单进程单线程 请求一个一个执行,不能大量处理请求可以开启threaded参数以保证多线程app.run(debug=app.config['DEBUG'], threaded=True)部署开发环境:webserver开启多线程 nginx apache tomcatflask的werk...原创 2019-08-31 11:26:23 · 1122 阅读 · 0 评论 -
python flask上下文管理
flask上下文管理:点击查看flask上下文示例:class MyResource: # 上下文管理 with语句 def __enter__(self): print('connect to resource') return self # a = 1 def __exit__(self, exc_type, ex...原创 2019-08-30 22:00:22 · 271 阅读 · 0 评论 -
python web框架 Flask(二)
flask的视图函数外部的api获得检索数据:豆瓣的图书信息api:https://api.douban.com/v2/book 访问频率有限制无参路由@app.route('/')def welcome(): return 'welcome'带参路由@app.route('/welcome/<name>/')def welcome(name): retur...原创 2019-08-25 13:57:17 · 209 阅读 · 0 评论 -
python scapy的半连接端口扫描
原理简述:端口扫描常见的一般有以下两种 基于socket的connect全连接扫描(速度快,但是会在对方系统日志留下痕迹) 基于scapy的SYN半连接扫描(不会被扫描的主机发现,速度慢。现在好像防火墙会有痕迹)详细说明 connect全连接扫描,基于socket套接字的connect方法,它的参数是一个元组(ip, port),此扫描试图与每一个TCP端口进行“三次握手”通信。...原创 2019-08-25 14:14:30 · 2201 阅读 · 0 评论 -
python web框架 flask(三)
flask(三)一. request对象浏览器带着用户的请求,经过flask框架创建出request对象,request对象包含当前用户的所以请求信息。from flask import requestrequest对象的属性:url:完整的url请求base_url:去掉get传参的urlhost_url:只有主机地址和端口号path:装饰中的路由地址method:请求方法...原创 2019-08-25 15:44:03 · 170 阅读 · 0 评论 -
python 进程 线程 协程(通信方式)
进程和线程,协程进程和线程的区别:5. 进程是:在执行的一个任务,由CPU执行6. 线程是:操作系统的最小调度单位7. 进程快还是线程快?:一样快 进程是通过线程执行所以是线程同线程比较8. 启动线程快还是进程快? 启动线程快,启动线程:要申请内存空间等 ,启动进程:直接执行指令9. 线程共享内存空间,进程内存是独立的10. 创建新线程更简单,创建新进程要拷贝父进程11. 一个线程...原创 2019-08-27 16:01:08 · 1924 阅读 · 0 评论 -
python IO多路复用(异步IO,同步IO,select,poll,epoll)
概述IO多路复用是IO模式的一种,是一种单线程处理多并发的IO操作的方案,其他IO操作方案分别有 :阻塞 I/O(blocking IO)非阻塞 I/O(nonblocking IO)I/O 多路复用( IO multiplexing)异步 I/O(asynchronous IO)IO多路复用其实就是我们说的select,poll,epoll,它的基本原理就是select,poll,e...原创 2019-08-27 17:28:27 · 326 阅读 · 0 评论 -
python http请求的用法
一. requests利用restful接口api得到它的json格式响应,或者text格式import requestsclass HTTP: @staticmethod # 没有用到self def get(url, return_json=True): r = requests.get(url) # restful api js...原创 2019-08-29 11:00:43 · 158 阅读 · 0 评论 -
进程 线程 python的GIL
由于计算机资源有限,程序竞争计算机资源(进程:竞争计算机资源的基本单位,至少有一个进程)单核CPU只能执行一个程序?在不同的应用程序进程之间切换多核(4核8核)进程调度算法:一个程序被挂起切换到另一个程序进程/线程 切换开销使非常大的(CPU利用率降低,一些CPU的资源消耗到进程切换中)线程:使进程的一部分线程:比进程更小的单元用来管理CPU的资源,线程切换消耗资源比进程小进程和线...原创 2019-08-30 18:52:14 · 210 阅读 · 0 评论 -
Python GUI编程初学,Tkinter库
初学Python GUI 编程,Tkinter入门窗口和控件窗口和控件在GUI编程中,顶层根窗口包含组成GUI应用的所有小窗口对象,可以是标签,按钮,列表框等等。Python中生成顶层窗口:// An highlighted blockimport tkintertop = tkinter.Tk()## Lable控件显示tkinter版本的hello world:import...原创 2019-03-02 17:27:23 · 354 阅读 · 0 评论