Python
文章平均质量分 55
youyouwuxin1234
博主:忧忧吾心
学历:2017.09-2019.07 硕士 - 武汉大学 软件工程
2013.08-2017.06 本科 - 郑州大学 计算机科学与技术
工作:2019.07.02-2021.11.16,在美的集团IT部门国际事业部,任职软件开发工程师
2021.11.22-2021.12.31,在新华三大数据有限公司从事软件研发
2022.01.01-至今,在紫光集团旗下紫光云技术有限公司从事中间件软件研发工作
其他:代表公司参加过2019年杭州阿里巴巴云栖大会
兴趣:爱生活、爱学习、爱运动、爱旅行、爱美食。
展开
-
00.Python修炼之路【01-网络】(2018.04.20)
关键字:TCP/IP协议、OSI七层模型、TCP/IP四层模型、端口、三次握手、四次挥手1、TCP/IP:传输控制协议/因特网协议2、模型分层:TCP/IP(5层):数据链路层、网络层、传输层、应用层。 OSI( 7层):物理层、数据链路层、网络层、传输层、会话层、传输层、应用层。3、端口: (0)含义:面向连接服务和无连接服务的通信协议端口;端口其实就是队,操作系统为各个进程分配...原创 2018-04-20 10:01:25 · 267 阅读 · 0 评论 -
03.Python修炼之路【05-TFTP】2018.04.24
使用Python实现TFTP准备工作:wireshark 抓包工具、TFTP的下载和上传、pack、unpack0、定义 TFTP(Trivial File Transfer Protocol,简单文件传输协议),是TCP/IP协议族中的一个用来在客户端与服务器(C/S)之间进行简单文件传输的协议。1、特点:简单占用资源小适合传递小文件适合在局域网进行传递端口号为69基于UDP实现2、T...原创 2018-04-24 16:01:56 · 259 阅读 · 0 评论 -
07.Python修炼之路【11-正则表达式】2018.05.09
关键字:原创 2018-05-09 09:53:37 · 892 阅读 · 0 评论 -
03.Python修炼之路【06-UDP广播】2018.04.24
如何更好地理解“广播”0. 定义广播(Broadcast): 广播是指在IP子网内广播数据包,所有在子网内部的主机都将收到这些数据包。 广播意味着网络向子网每一个主机都投递一份数据包,不论这些主机是否乐于接收该数据包。所以广播的使用范围非常小, 只在本地子网内有效,通过路由器和交换机网络设备控制广播传输。 “广播”可以理解为一个人通过广播喇叭对在...原创 2018-04-24 17:49:35 · 136 阅读 · 0 评论 -
01.Python修炼之路【02-IP】(2018.04.20)
1、IPV4:( Internet Protocol version 4 )表示IP协议(簇)的第四个版本。2、为什么会有IPV6? 最初每一个连接入互联网的用户都要分配使用一个IPv4 地址,因此未分配的IPv4地址越来越少,由此产生了IPv4地址耗尽的问题。为了根本解决IPv4地址耗尽的问题,IPv6应运而生。3、IPv4通常用点分十进制记法书写,例如192.168.0.1,其...原创 2018-04-20 14:57:26 · 174 阅读 · 0 评论 -
04.Python修炼之路【07-TCP通信】2018.04.25
关键字:TCP服务器、TCP客户端TCP、UDP的区别0、TCP服务器 流程:socket创建一个TCP套接字 bind绑定ip和port listen使套接字变为可以被动链接 accept等待客户端的链接 recv/send接收发送数据代码:from socket import *serverSocket = socket(AF_INET, SOCK_STRE...原创 2018-04-25 11:23:34 · 160 阅读 · 0 评论 -
04.Python修炼之路【08-网络通信】2018.04.25
关键字:Packet Tracer、DNS(Domain Name System)、Switch(交换机)、Router(路由器)、Netmask(掩码)、Sub Netmask(子网掩码)一、Packet Tracer介绍 Packet Tracer 是由Cisco(著名网络公司,思科)公司发布的一个辅助学习工具,为学习思科网络课程的初学者去设计、配置、排除网络故障提供了网络模拟...原创 2018-04-25 15:20:09 · 203 阅读 · 0 评论 -
08.Python修炼之路【12-数据结构与算法】2018.05.10
关键字:顺序表、链表、栈、队列、排序与搜索、树一、算法的提出算法的概念 算法是计算机处理信息的本质,因为计算机程序本质上是一个算法来告诉计算机确切的步骤来执行一个指定的任务。一般地,当算法在处理信息时,会从输入设备或数据的存储地址读取数据,把结果写入输出设备或某个存储地址供以后再调用。算法是独立存在的一种解决问题的方法和思想。 对于算...原创 2018-05-10 15:50:07 · 131 阅读 · 0 评论 -
16.Python修炼之路【20-选择排序】2018.05.17
选择排序选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将被移...原创 2018-05-17 10:47:47 · 112 阅读 · 0 评论 -
06.Python修炼之路【10-Web服务器】2018.05.04
关键词:HTTP协议:get、post一、两种最常用的 HTTP 方法是:GET 和 POST。什么是 HTTP?超文本传输协议(HTTP)的设计目的是保证客户机与服务器之间的通信。HTTP 的工作方式是客户机与服务器之间的请求-应答协议。web 浏览器可能是客户端,而计算机上的网络应用程序也可能作为服务器端。举例:客户端(浏览器)向服务器提交 HTTP 请求;服务器向客户端返回响应。响应包含关于...原创 2018-05-04 11:50:35 · 103 阅读 · 0 评论 -
17.Python修炼之路【21-插入排序】2018.05.17
插入排序 插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。插入排序分析 def insert_sort(alist): # 从第二个位置,即下标...原创 2018-05-17 15:18:08 · 128 阅读 · 0 评论 -
09.Python修炼之路【13-顺序表】2018.05.11
关键字:原创 2018-05-11 10:23:12 · 162 阅读 · 0 评论 -
18.Python修炼之路【22-希尔排序】2018.05.17
希尔排序希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。希尔排序过程希尔排序的基本思想是:将数组列...原创 2018-05-17 17:48:41 · 86 阅读 · 0 评论 -
10.Python修炼之路【14-链表】2018.05.11
关键字原创 2018-05-11 15:36:35 · 757 阅读 · 0 评论 -
05.Python修炼之路【09-服务器】2018.04.27
关键字:并发服务器(多进程服务器、多线程服务器)一、单进程服务器1. 完成一个简单的TCP服务器from socket import *serSocket = socket(AF_INET, SOCK_STREAM)# 重复使用绑定的信息serSocket.setsockopt(SOL_SOCKET, SO_REUSEADDR , 1)localAddr = ('', 7788)...原创 2018-04-27 09:42:21 · 132 阅读 · 0 评论 -
11.Python修炼之路【15-单向循环链表】2018.05.14
单向循环链表单链表的一个变形是单向循环链表,链表中最后一个节点的next域不再为None,而是指向链表的头节点。操作is_empty() 判断链表是否为空length() 返回链表的长度travel() 遍历add(item) 在头部添加一个节点append(item) 在尾部添加一个节点insert(pos, item) 在指定位置pos添加节点remove(item) 删除一个节点search...原创 2018-05-14 17:31:43 · 104 阅读 · 0 评论 -
01.Python修炼之路【03-Socket套接字】(2018.04.20)
1.本地的进程间通信(IPC)有很多种方式,例如队列同步(互斥锁、条件变量等)以上通信方式都是在一台机器上不同进程之间的通信方式,那么问题来了网络中进程之间如何通信?2. 网络中进程之间如何通信首要解决的问题是如何唯一标识一个进程,否则通信无从谈起!在本地可以通过进程PID来唯一标识一个进程,但是在网络中这是行不通的。其实TCP/IP协议族已经帮我们解决了这个问题,网络层的“ip地址”可以唯一标识...原创 2018-04-20 17:23:53 · 130 阅读 · 0 评论 -
02.Python修炼之路【04-模拟QQ】2018.04.23
要求:使用多线程完成一个全双工的类QQ聊天程序 关键字:多线程、socket、端口绑定、消息接收与发送 ...原创 2018-04-23 17:34:49 · 114 阅读 · 0 评论 -
19.Python修炼之路【23-快速排序】2018.05.21
快速排序快速排序(英语:Quicksort),又称划分交换排序(partition-exchange sort),通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。步骤为:从数列中挑出一个元素,称为"基准"(pivot),重新排序数列,所有元素比基准...原创 2018-05-21 14:40:39 · 103 阅读 · 0 评论 -
26.Python修炼之路【30-查询】2018.05.25
一、简介查询的基本语法select * from 表名;from关键字后面写表名,表示数据来源于是这张表select后面写表中的列名,如果是*表示在结果中显示表中所有列在select后面的列名部分,可以使用as为列起别名,这个别名出现在结果集中如果要查询多个列,之间使用逗号分隔二、消除重复行在select后面列前使用distinct可以消除重复的行select distinct gender f...原创 2018-05-25 15:53:12 · 100 阅读 · 0 评论 -
27.Python修炼之路【31-查询之条件】2018.05.25
条件使用where子句对表中的数据筛选,结果为true的行会出现在结果集中语法如下:select * from 表名 where 条件;比较运算符等于=大于>大于等于>=小于<小于等于<=不等于!=或<>查询编号大于3的学生select * from students where id>3;查询编号不大于4的科目select * from subjec...原创 2018-05-25 15:54:50 · 106 阅读 · 0 评论 -
20.Python修炼之路【24-归并排序】2018.05.21
归并排序的分析def merge_sort(alist): if len(alist) <= 1: return alist # 二分分解 num = len(alist)/2 left = merge_sort(alist[:num]) right = merge_sort(alist[num:]) # 合并 retu...原创 2018-05-21 17:44:25 · 92 阅读 · 0 评论 -
12.Python修炼之路【16-双向链表】2018.05.15
关键字:原创 2018-05-15 16:25:51 · 98 阅读 · 0 评论 -
21.Python修炼之路【25-常用的排序算法效率比较】2018.05.22
原创 2018-05-22 14:59:33 · 103 阅读 · 0 评论 -
22.Python修炼之路【26-搜索、查找算法】2018.05.22
搜索 搜索是在一个项目集合中找到一个特定项目的算法过程。搜索通常的答案是真的或假的,因为该项目是否存在。 搜索的几种常见方法:顺序查找、二分法查找、二叉树查找、哈希查找二分法查找 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排...原创 2018-05-22 15:01:29 · 125 阅读 · 0 评论 -
13.Python修炼之路【17-堆/栈】2018.05.16
关键字:原创 2018-05-16 11:59:17 · 93 阅读 · 0 评论 -
14.Pyhton修炼之路【18-队列/双端队列】2018.05.16
队列的实现同栈一样,队列也可以用顺序表或者链表实现。操作Queue() 创建一个空的队列enqueue(item) 往队列中添加一个item元素dequeue() 从队列头部删除一个元素is_empty() 判断一个队列是否为空size() 返回队列的大小class Queue(object): """队列""" def __init__(self): self.i...原创 2018-05-16 12:51:40 · 189 阅读 · 0 评论 -
15.Python修炼之路【19-冒泡排序】2018.05.16
关键字:冒泡排序冒泡排序冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。冒泡排序算法的运作如下:比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个。对每一...原创 2018-05-16 16:07:46 · 107 阅读 · 0 评论 -
23.Python修炼之路【27-树】2018.05.23
树与树算法树的概念树(英语:tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:每个节点有零个或多个子节点;没有父节点的节点称为根节点;每一个非根节点有且只有一个父节点;除了根节点外...原创 2018-05-23 10:43:04 · 141 阅读 · 0 评论 -
24.Python修炼之路【28-二叉树】2018.05.23
关键字原创 2018-05-23 17:55:36 · 117 阅读 · 0 评论 -
25.Python修炼之路【29-MySql】2018.05.24
一、简介mysql数据库,是当前应用非常广泛的一款关系型数据库查看官方网站 https://www.mysql.com/查看数据库排名主要知识点包括:数据库与表的操作数据的增加、修改、删除数据的查询(重点)与python交互...原创 2018-05-24 10:08:33 · 102 阅读 · 0 评论 -
34.Python修炼之路【38-关联】2018.06.05
自关联设计省信息的表结构provincesidptitle设计市信息的表结构citysidctitleproidcitys表的proid表示城市所属的省,对应着provinces表的id值问题:能不能将两个表合成一张表呢?思考:观察两张表发现,citys表比provinces表多一个列proid,其它列的类型都是一样的意义:存储的都是地区信息,而且每种信息的数据量有限,没必要增加一个新表,或者将来...原创 2018-06-05 11:30:37 · 84 阅读 · 0 评论 -
35.Python修炼之路【39-连接】2018.06.05
先看个问题问:查询每个学生每个科目的分数分析:学生姓名来源于students表,科目名称来源于subjects,分数来源于scores表,怎么将3个表放到一起查询,并将结果显示在同一个结果集中呢?答:当查询结果来源于多张表时,需要使用连接查询关键:找到表间的关系,当前的关系是students表的id---scores表的stuidsubjects表的id---scores表的subid则上面问题的...原创 2018-06-05 11:51:22 · 108 阅读 · 0 评论 -
37.Python修炼之路【42-索引】2018.06.05
事务当一个业务逻辑需要多个sql完成时,如果其中某条sql语句出错,则希望整个操作都退回使用事务可以完成退回的功能,保证业务逻辑的正确性事务四大特性(简称ACID)原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么均不执行一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序串行执行的结果相一致隔离性(Isolation):事务的执行...原创 2018-06-05 16:00:47 · 137 阅读 · 0 评论 -
38.Python修炼之路【43-总结&amp;复习】2018.06.05
总结关系的存储连接查询自关联子查询常用内置函数视图事务作业设计班级表,与学生表关联,并进行查询设计分类表,自关联,并进行查询创建视图存储上面的两个查询...原创 2018-06-05 17:04:32 · 79 阅读 · 0 评论 -
39.Python修炼之路【44-内置函数】2018.06.05
字符串函数查看字符的ascii码值ascii(str),str是空串时返回0select ascii('a');查看ascii码值对应的字符char(数字)select char(97);拼接字符串concat(str1,str2...)select concat(12,34,'ab');包含字符个数length(str)select length('abc');截取字符串left(str...原创 2018-06-05 17:16:47 · 99 阅读 · 0 评论 -
35.Python修炼之路【40-视图】2018.06.05
视图对于复杂的查询,在多次使用后,维护是一件非常麻烦的事情解决:定义视图视图本质就是对查询的一个封装定义视图create view stuscore as select students.*,scores.score from scoresinner join students on scores.stuid=students.id;视图的用途就是查询select * from stusco...原创 2018-06-05 14:23:59 · 100 阅读 · 0 评论 -
36.Python修炼之路【41-事务】2018.06.05
事务当一个业务逻辑需要多个sql完成时,如果其中某条sql语句出错,则希望整个操作都退回使用事务可以完成退回的功能,保证业务逻辑的正确性事务四大特性(简称ACID)原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么均不执行一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序串行执行的结果相一致隔离性(Isolation):事务的执行...原创 2018-06-05 15:25:36 · 92 阅读 · 0 评论 -
45.Python修炼之路【50-MongoDB】2018.06.12
简介MongoDB 是一个基于分布式文件存储的NoSQL数据库 由C++语言编写,运行稳定,性能高 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案 查看官方网站MongoDB特点模式自由 :可以把不同结构的文档存储在同一个数据库里 面向集合的存储:适合存储 JSON风格文件的形式 完整的索引支持:对任何属性可索引 复制和高可用性:支持服务器之间的数据复制,支持主-从...原创 2018-06-12 17:04:30 · 92 阅读 · 0 评论 -
46.Python修炼之路【51-MongoDB基本操作】2018.06.12
基本操作MongoDB将数据存储为一个文档,数据结构由键值(key=>value)对组成 MongoDB文档类似于JSON对象,字段值可以包含其他文档、数组、文档数组 安装管理mongodb环境 完成数据库、集合的管理 数据的增加、修改、删除、查询名词SQL术语/概念 MongoDB术语/概念 解释/说明 database database 数据...原创 2018-06-12 17:08:56 · 104 阅读 · 0 评论