- 博客(14)
- 收藏
- 关注
原创 tcp协议
tcp三次握手不同于udp,tcp在通信之前需要先建立链接,当链接建立好后才正式开始进行通信。在建立链接过程中有三次交互过程,这三次就叫做三次握手。如图所示,首先客户端调用connect,发送syn j这个包给服务端,当服务端收到这个包然后返回syn j+1 给客户端,这样就说明服务器已经准备好了。同样的,服务器端也会发送一个syn k给客户端,客户端回送一个syn k+1,这样表示客户...
2019-04-16 12:36:02
166
原创 正则表达式
概述正则表达式是指从数据中提取出有效的信息的方法。re模块match方法 # 导入re模块 import re # 使用match方法进行匹配操作 result = re.match(正则表达式,要匹配的字符串) # 如果上一步匹配到数据的话,可以使用group方法来提取数据 result.group()字符功能...
2019-04-15 18:06:04
96
原创 协程
迭代器迭代是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。可迭代对象:像列表,元组等可以使用for in 循环进行迭代的我们称之为可迭代对象。判断是否是可迭代对象:In [50]: from collections import IterableIn [51]: isinsta...
2019-04-14 14:22:51
91
原创 多进程
什么是进程程序运行起来后,代码 + 用上的资源称之为进程。这是操作系统分配资源的基本单位。进程也可以完成多任务。实现方式在python中载入进程库,multiprocessing其他和线程语法差不多,值得注意的是进程间不共享局部变量。进程池当需要创建的子进程数量不多时,可以直接利用multiprocessing中的Process动态成生多个进程,但如果是上百甚至上千个目标,手动的去创...
2019-04-13 14:25:06
90
原创 多线程
多任务的概念就是操作系统可以同时运行多个任务。打个比方,你一边在用浏览器上网,一边在听MP3,一边在用Word赶作业,这就是多任务 并发:指的是任务数多余cpu核数,通过操作系统的各种任务调度算法,实现用多个任务“一起”执行(实际上总有一些任务不在执行,因为切换任务的速度相当快,看上去一起执行而已) 并行:指的是任务数小于等于cpu核数,即任务真的是一起执行的一般而言,并发的场景更多...
2019-04-07 18:49:25
76
2
原创 文件下载器的实现
这里使用tcp协议实现一个文件下载器众所周知,tcp是一个互联网传输协议,能够在不同电脑上对数据进行交换,这么我们就用tcp协议实现一个文件下载器功能。程序分为两块,第一块为客户端,用户在客户端向服务器端请求需要下载的文件。然后把服务器端发送过来的文件保存起来。import socketdef main(): # 创建套接字,这里创建的是tcp的套接字,和UDP不同的是SOCK_S...
2019-04-06 18:05:51
430
原创 udp介绍与实现
什么是 socketsocket(简称 套接字) 是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:它能实现不同主机间的进程间通信,我们网络上各种各样的服务大多都是基于 Socket 来完成通信的。例如我们每天浏览网页、QQ 聊天、收发 email 等等创建 socket有两种socket模式,一种是udp,一种是tcp,tcp将在下一篇博客介绍。这一篇主要介绍UDP。...
2019-04-05 14:12:12
1601
1
原创 网络基本概念
IP地址目的:用来标记网络上的一台电脑查看IP地址信息:win系统:在网络中心中或者在CMD窗口输入 ipconfiglinux系统:在命令窗口中输入 ifconfig ,禁用网卡操作 ifconfig [网卡名] down ,开启网卡 ifconfig [网卡名] up (有可能需要系统权限,在命令行前 + sudo, ctrl+A:快速回到行首,ctrl+E:快速回到行尾)IP地...
2019-04-05 11:28:20
156
1
原创 求平方根
问题描述:给出一个数,求出它的平方根。问题分析:虽然在python中有方便的求平方根的方式,但是我们这里不使用它的内置函数。我们利用一个公式x1 = 1÷2×(x0+a÷x0)这个公式来反复迭代求出近似解。当然,在我们迭代的时候会出现一个停止迭代的条件,这个条件我们就用我们需要的精度来确定。代码如下:def squre(x): """ 这是一个求平方根的函数 :...
2019-03-23 16:53:55
637
原创 找零钱问题
问题描述:现在小王家超市打算上线一个电子计算找零系统,当你输入需要找零的金额,系统自动计算出最佳的找零策略。(人民币面值:100 50 21 10 5 2 1 0.5 0.2 0.1)算法分析:输入一个金额找零的可能性是多种的,我们需要找到最优的那种方式。这就是贪心算法。贪心算法的原理就是 我不管以后怎么样,我只把我目前碰到的问题最优解决。程序如下def payment(money):...
2019-03-22 18:39:55
552
原创 十进制转化为二进制
今天我们来实现一个有趣的小案例。要求:任意输入一个正十进制数把它转化为二进制数输出。我这里使用了递归算法def transit(num,binary): """ 十进制转化为二进制 :param num: 输入的10进制 :return: None """ if num >= 2: remainder = num % 2...
2019-03-21 18:35:03
846
原创 斐波那契数列 (递归算法)
问题描述:“假定一对大兔子每月能生一对小兔子,且每对新生的小兔子经过一个月可以长成一对大兔子,具备繁殖能力,如果不发生死亡,且每次均生下一雌一雄,问一年后共有多少对兔子?”在这里我们注意观察发现,从第三月份起,每个月的兔子数量是它前两个月兔子数量之和。也就是 :第(i)月的兔子数 = 第 (i -1 ) 月兔子数 + 第 (i - 2)月兔子数。由此我们编写python代码如下。def d...
2019-03-14 19:58:59
594
原创 百钱买百鸡问题
算经中有这么一道题,题目很简单:公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱, 用100文钱买一百只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱?从数学的角度看这是一道很基础的三元一次方程,现在我们用程序来解决这个问题,最容易想的的方法就是使用枚举法,把每一种可能性都列举出来。下面用python实现。gongji = 1muji = 1while g...
2019-03-12 22:42:36
737
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人