
python基础
别追我我有止咳糖浆
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
1-初始python
目前我使用的Python 3.7.x的版本是在2018年发布的,Python的版本号分为三段,形如A.B.C。其中A表示大版本号,一般当整体重写,或出现不向后兼容的改变时,增加A;B表示功能更新,出现新功能时增加B;C表示小的改动(例如:修复了某个Bug),只要有修改就增加C。如果对Python的历史感兴趣,可以阅读名为《Python简史》的网络文章。原创 2023-02-07 10:22:37 · 176 阅读 · 0 评论 -
两个字符串公有的部分
查找两个字符中公有的部分?思路如下:判断字符串的长度,拿长度小的去长度达的里面寻找def getcom(str1,str2): #拿出字段小的字段的长度 minlen = len(str1) if len(str1) < len(str2) else len(str2) #字段最小的字符 res = str1 if len(str1) < len(...原创 2018-11-29 19:52:12 · 350 阅读 · 2 评论 -
udp与tcp
udp与tcptcp:TCP客户端的创建流程:1.创建TCP的socket套接字2.连接服务器3.发送数据给服务器端4.接收服务器端发送来的消息5.关闭套接字TCP服务器端的创建流程1.创建TCP服务端的socket2.bing绑定ip地址和端口号3.listen使套接字变为被动套接字4.accept取出一个客户端连接,用于服务5.recv/send接收和发送消息6.关...原创 2018-11-27 09:46:37 · 178 阅读 · 0 评论 -
tcp窗口机制
窗口机制原理:比如主机a给主机b发送数据,为了更高的通话效率,主机a一次给主机b发了三次数据。(主机a给主机b发送了一个大的数据);主机b收到数据以后限制于他的窗口大小只能处理其中的一部分数据那么主机b就会向主机a回复一个确认值三个数据都收到了,但是他的窗口大小只显示处理了2个数据,那么主机a收到以后就会做一个发送处理,将数据调成发送的量为2个进行发送,这样一来就解决了发送多个而处理不完的现象。...翻译 2018-11-27 09:58:39 · 498 阅读 · 0 评论 -
python日志级别
python日志级别:critical&gt;error&gt;waring&gt;info&gt;debug级别越高打印的日志越少,反之亦然,即Debug : 打印全部的日志(notset等同于debug)info : 打印info,warning,error,critical级别的日志warning : 打印warning,error,critical级别的日志error : 打印...原创 2018-11-30 12:21:42 · 1027 阅读 · 0 评论 -
rest api
rest 也就是representational state transfer:具象状态转移,翻译过来也就是变现层状态转移.那么什么是表现层状态转移呢?首先要明白一点,rest是一种设计风格而不是标准,是客户端与服务器之间交换的一种方式,我们要关注的就是如何设计这种风格的网络接口?REST的特点:1.具象的。一般指表现层,要表现的对象就是资源。比如,客户端访问服务器,获取的数据就是资源。...翻译 2018-12-05 08:37:23 · 249 阅读 · 0 评论 -
mysql操作
#进入mysql mysql -u用户名 -p密码#找到mysqluse mysql;#查看用户select user,host from user#新建用户create user 用户名 @‘%’ identified by ‘密码’;#授权grant all privileges on *.* to mac@"%" identified by "123456" with...原创 2018-12-01 11:21:57 · 472 阅读 · 0 评论 -
mysql连接查询
mysql连接查询-- 常用函数: 字符串函数select length('helloworld')select * from studbselect sname,length(sname) from studbselect * from studb where length(sname)=9-- 截串select left('abcdefg',3)select righ...原创 2018-12-01 14:40:45 · 377 阅读 · 0 评论 -
mysql数据的备份与恢复
在工作中有时候难免需要对重要 的东西进行存贮,这里简单介绍一下mysql的存储window进入mysql安装目录的bin目录下,linux系统先切换到超级用户下,sudo su然后执行 cd /var/lib/mysqlsudo sucd /var/lib/mysql 然后执行mysqldump -uroot -pdbpasswd db_name table_name >db....原创 2018-12-01 14:55:40 · 162 阅读 · 0 评论 -
redis操作
redis是key-value的数据,所以每个数据都是一个键值对键的类型是字符串值的类型分为五种哈希 字典 列表 集合 有序集合redis: 介绍作用特点: key — valuevalue 类型• o 字符串string• o 哈希hash(字典)• o 列表list• o 集合set• o 有序集合zset • • 常用方法:• string 如何用•...原创 2018-12-01 15:56:39 · 151 阅读 · 0 评论 -
ubuntu安装nginx
Nginx作为负载均衡服务:Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务对外进行服务。Nginx采用C进行编写,不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多。处理静态文件,索引文件以及自动索引;打开文件描述符缓冲。无缓存的反向代理加速,简单的负载均衡和容错。nginx下载网址nginx 目前稳定版的是1....原创 2018-12-03 12:05:24 · 502 阅读 · 1 评论 -
twisted简介之reactor
Twisted是用Python实现的基于事件驱动的网络引擎框架,Twisted支持许多常见的传输及应用层协议,包括TCP、UDP、SSL/TLS、HTTP、IMAP、SSH、IRC以及FTP。就像Python一样,Twisted也具有“内置电池”(batteries-included)的特点。Twisted对于其支持的所有协议都带有客户端和服务器实现,同时附带有基于命令行的工具,使得配置和部署产品...原创 2018-12-08 14:43:00 · 2848 阅读 · 0 评论 -
twisted简介之网络连接
前面已经简单的介绍了twisted以及reactor模块,下面在介绍一些其他的模块!TransportsTransports代表网络中两个通信结点之间的连接。Transports负责描述连接的细节,比如连接是面向流式的还是面向数据报的,流控以及可靠性。TCP、UDP和Unix套接字可作为transports的例子。它们被设计为“满足最小功能单元,同时具有最大程度的可复用性”,而且从协议实现中...原创 2018-12-08 14:51:37 · 487 阅读 · 0 评论 -
twisted的stdio操作
# 发送与接收# 通过标准I/O来进行数据发送和接收,将接收到的数据传递到标准输出,并打印数据到标准输出# 验证:可以通过网络调试助手服务器两边互发数据# 也可以通过GET / HTTP/1.1\r\nHost: example.webscraping.com\r\nUser-Agent: wswb\r\n\r\n# 来实现HTTP操作得到网站webscraping...原创 2018-12-08 14:56:43 · 257 阅读 · 0 评论 -
https的工作原理
https–安全套接字的超文本传输协议,是在http协议的基础上怎增加了ssl安全传输协议,http协议也就是我们通常通常浏览网页时使用的一种协议,信息传输是明文规定的,并且链接时无状态的,端口是80.因此https在http上增加了ssl协议,加密了通信的安全性,可以用于用户登录注册,身份验证等.SSL目前的版本是3.0,被IETF(Internet Engineering Task Force...翻译 2018-12-06 08:30:56 · 478 阅读 · 0 评论 -
ubuntu18.04安装mysql没有密码提示解决办法
最近一直被问到ubuntu18.04在安装mysql过程中没有出现ubuntu16.04过程中那样出现密码提示,这里简单说一下mysql安装后自己有一个默认的用户名以及密码,不过不是root1查看默认的用户以及密码:sudo vi /etc/mysql/debian.cnf2记录用户名以及密码(可以用该账号登录不用重新设置)以下步骤为设置账户和密码: 3 mysql -u debia...原创 2018-12-03 20:27:40 · 1182 阅读 · 0 评论 -
python 内存泄漏与内存溢出
***内存泄漏:***你使用malloc或new向 内存申请了一块内存空间,但没有用free以及delete对该块内存进行释放,造成程序失去了对该块内存的控制.内存溢出:你申请了10个字节的内存,但写入了大于10个字节的数据内存泄漏指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,失去了对该段内存的控制,因...转载 2018-12-07 09:17:07 · 10786 阅读 · 2 评论 -
数据库三范式
设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。 目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。 一般说来,数据库只需满足第三范式(3NF)就行了第一范式(1NF):...原创 2018-11-29 15:40:16 · 552 阅读 · 0 评论 -
优化数据库查询效率
在工作中我们经常与数据库打交道,怎么提高查询效率?节约时间一下是一些常见你的方法!1、储存引擎选择:如果数据表需要事务处理,应该考虑使用InnoDB,因为它完全符合ACID 特性。如果不需要事务处理,使用默认存储引擎MyISAM是比较明智的2、分表分库,主从。3、对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 orderby 涉及的列上建立索引4、应尽量避免在 whe...原创 2018-11-29 11:07:44 · 755 阅读 · 0 评论 -
异常处理
异常处理相关概念错误:程序运行之前的语法错误,如:关键字、缩进不齐、括号不成对。异常:在程序运行过程中出现的问题,如:除数为0、对象属性不存在等。异常处理说明:异常处理可以理解为特殊的流程控制语句,可以提高代码的健壮性。语法:try: print('正常代码') # 3/0 # print(a) print('正常结束')except E...原创 2018-11-16 21:04:07 · 162 阅读 · 0 评论 -
GIL全局解释器锁
GIL(全局解释器锁)(只在cpython里才有):概述:在同一个进程中只要有一个线程获取了全局解释器(cpu)的使用权限,那么其他的线程就必须等待该线程的全局解释器(cpu)使用权消失后才能使用全局解释器(cpu),即时多个线程之间不会相互影响在同一个进程下也只有一个线程使用cpu,这样的机制称为全局解释器锁(GIL)。作用:限制多线程同时执行,保证同一时间只有一个线程执行,所以cpytho...原创 2018-11-22 09:37:31 · 301 阅读 · 0 评论 -
B/S与 C/S
B/S:请求过程简略C/S请求原创 2018-11-17 14:47:15 · 178 阅读 · 0 评论 -
python生成随机数
#python中如何和生成随机数import random#生成0-1之间的随机浮点数a = random.random()#生成一定范围的随机浮点数a = random.uniform(10,20)#生成某一范围的随机整数a = random.randint(10,20)#从一个列表中随机获取一个值a = random.choice([5,'hello',[1,2,3],'w...原创 2018-11-17 15:07:03 · 3504 阅读 · 4 评论 -
匿名函数/字典排序
#匿名函数,当某些函数只使用一次时没必要定义可以使用匿名函数#例如:`def add(x,y):a = x+ yprint(a)add(3,4)#使用匿名函数b = lambda x,y:x+yprint(b(3,4))#使用匿名函数解决字典排序#1代表按value排序 0 代表按key排序d = {‘hello’:5,“world”:10,‘asd’:1}d1 = s...原创 2018-11-17 15:20:38 · 522 阅读 · 0 评论 -
python元类
使用metaclass(元类):控制类的创建过程,主要做三件事1:拦截类的创建2:修改类的定义3:返回修改后的类class Single(type): #object是type的示例,type继承object def __init__(self,*args,**kwargs): self._instance= None super(Singl...原创 2018-11-17 15:40:56 · 134 阅读 · 0 评论 -
python实现单例模式
python实现单例模式的方法:1:使用模块python模块是一个天然的单例模式,在模第一次导入时,会生成.pyc文件,第二次时候就会直接加载.pyc文件而不会直接执行代码块.所以可以将代码放在一个文件中,然后导入该模块2:使用__new__class Single(object): def __new__(cls, *args, **kwargs): if n...原创 2018-11-17 15:48:54 · 266 阅读 · 0 评论 -
TCP/IP 协议和HTTP协议
http协议:http((Hypertext TransferProtocol))协议超文本传输协议,是web联网的基础,也是手机联网的基础.HTTP协议是建立在TCP协议之上的一泓应用.HTTP协议链接最显著特点就是客户端发送的每次请求都需要服务器发送响应每次请求结束后,会自动释放链家,从连接到关闭连接的过程叫做一次连接,所以http协议是无状态的.从连接到关闭连接的过程叫做一次连接信息...原创 2018-11-17 16:09:35 · 354 阅读 · 0 评论 -
自定义一个迭代器实现斐波那契数列
class Fibiter(object): def __init__(self,n): #初始化参数 self.n = n #生成数列的前n个数 #当前数列中的第几个数 self.current = 0 #保存前一个数,初始为数列的前两个 self.num1 = 0 self...原创 2018-11-17 16:32:17 · 538 阅读 · 0 评论 -
冒泡/选择排序
常见python排序#任意列表的冒泡排序def sort(lt,key = None,reverse = False): n = len(lt) for i in range(n-1): for j in range(n-1-i): if key: ret = key(lt[j]) &amp;lt; key(lt[...原创 2018-11-17 19:53:12 · 229 阅读 · 0 评论 -
*args与**kwargs
在函数定义中使用*args和kwargs传递可变长参数.*args用作传递非命名键值可变长参数列表(位置参数) ;kwargs 用作传递键值可变长参数列表,并且, *args必须位于**kwargs之前,因为positionalarguments必须位于keyword arguments之前字典参数传递时可以采用(**dict)这样的形式展开...原创 2018-11-17 20:04:56 · 156 阅读 · 0 评论 -
爬取uputoo视频
爬取uputoo视频import jsonimport urllib.requestimport os,timefrom math import ceilfrom lxml import etreeimport reimport randomdef get_heders(): ua_list = [ "Mozilla/5.0 (Windows NT 6.1; WOW64;...原创 2018-11-17 20:49:49 · 163 阅读 · 0 评论 -
提高mysql查询效率
提高mysql查询效率1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:sel...原创 2018-11-20 08:51:36 · 1202 阅读 · 0 评论 -
python垃圾回收机制以及循环引用问题
几次涉及到垃圾回收机制,这里做一个总结引用计数是一种垃圾回收机制,而且也是一种最直观,最简单的垃圾收集技术.当一个对象呗创建或者被引用时,该对象的引用计数就会加1,当对象被销毁时相应的引用计数就会减1,一旦引用计数减为0时,表示该对象已经没有被使用.可以将其所占用的内存资源释放掉.a =[]#对象A的引用计数为 1b =[]#对象B的引用计数为 1a[1] = b #B的引用计数增...原创 2018-11-20 10:15:31 · 2077 阅读 · 1 评论 -
事务与索引
1、原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么均不执行。2、一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序串行执行的结果相一致。3、隔离性(Isolation):事务的执行不受其他事务的干扰,事务执行的中间结果对其他事务必须是透明的。4、持久性(Durability):对于任意已提交事务,系统必须保证该事务...原创 2018-11-29 11:04:06 · 272 阅读 · 0 评论 -
装饰器
装饰器:在不改变原有函数的基础上增加函数的功能例如:def sub(a,b): return a - bp = sub(10,20)print(p)以上函数 求a-b的差,如果要求他们的绝对值,一种简单的方法就是在返回值上面添加绝对值abs但是这样显得有点low,这是代码比较简单并且少,如果代码复杂并且大量使用呢?这时候可以使用装饰器def decorade(func): #d...原创 2018-11-07 08:12:50 · 111 阅读 · 0 评论