文章目录一、背景二、总结内容2.1UDP通信服务端创建方式**DUP采用的是无连接的套接字**2.216进制数据解析2.3文件创建与数据储存分析一、背景最近在处理公司的一设备,内置的DTU通过UDP向服务器发送16进制的数据报文,由于第一次接触此类数据解析方式,在这里做总结与反省,避免大家走弯路二、总结内容2.1UDP通信服务端创建方式步骤创建UDP的socket通信方式。绑定具体的端口。设置端口复用等待(这一步可以省略)获取数据。向客户端发送数据。解析储
系统 2019-09-27 17:53:08 1858
运行多进程每个子进程的内存空间是互相隔离的进程之间数据不能共享的互斥锁但是进程之间都是运行在一个操作系统上,进程之间数据不共享,但是共享同一套文件系统,所以访问同一个文件,或同一个打印终端,是可以的,而共享带来的是竞争,竞争带来的结果就是错乱#并发运行,效率高,但竞争同一打印终端,带来了打印错乱frommultiprocessingimportProcessimporttimedeftask(name):print("%s1"%name)time.slee
系统 2019-09-27 17:52:42 1858
建造者模式,也是一种创建新对象的设计方法,和C++中的虚函数很类似,但是用到了python自身的虚基类ABCMeta。1.应用场景:某个类中的函数较多,且实现比较复杂,很多时候需要继承的子类重载或者重新定义逻辑;2.背景基础:由于用到python中虚函数,需要了解abc模块中的ABCMeta和python中类创建对象时的__metaclass__属性含义。一般地,在某个类中如果定义__metaclass__=something时,简单地说是,创建对象时,会
系统 2019-09-27 17:52:26 1858
yield的功能类似于return,但是不同之处在于它返回的是生成器。生成器生成器是通过一个或多个yield表达式构成的函数,每一个生成器都是一个迭代器(但是迭代器不一定是生成器)。如果一个函数包含yield关键字,这个函数就会变为一个生成器。生成器并不会一次返回所有结果,而是每次遇到yield关键字后返回相应结果,并保留函数当前的运行状态,等待下一次的调用。由于生成器也是一个迭代器,那么它就应该支持next方法来获取下一个值。基本操作#通过`yield`
系统 2019-09-27 17:52:18 1858
Python的字符串的特点Python与C语言,Java语言都不一样,没有单个字符,只有一个有一个字符的字符串。字符串对象不可修改,属于不可变类型字符串和列表,元组都从属于序列这个对象类别。所以序列支持的操作,字符串也支持。用单引号和双引号表示都行,并列的字符串串常量会自动合并,不需要显式的用加号表示。单双引号里面的特殊字符必须用转义序列表示,比如”,',\都需要在前面加个、,但是在三引号里面不需要转义。Python的字符串的支持的基本操作支持序列的操作,
系统 2019-09-27 17:52:13 1858
基础版(list方法)#比较占内存w=int(input("输入一个数字还你一个斐波那契数列:"))list_res=[]deflist_n(n):ifn>=3:res=list_n(n-1)+list_n(n-2)else:res=1returnresprint("开始")foriinrange(0,w):list_res.append(list_n(i+1))print(list_res)升级版#比较占内存num=int(input("输入一个数字还你
系统 2019-09-27 17:52:01 1858
1、数字普通除法print(7/3)2.3333333333333335地板除print(7//3)2取余print(7%3)1乘法print(7*3)21乘方print(3**3)27四则运算print((3*2)+5-(5*3))-42、字符串单引号和双引号作用一样print(‘hello’)print(“hello”)print("‘hello’")hellohello‘hello’将转义符原样输出print(r"hello\nworld")hell
系统 2019-09-27 17:51:24 1858
新人小菜鸟又来写博客啦!!!没人表示不开心~~(>_<)~~今天我来弄一个简单的关键词提取的代码文章内容关键词的提取分为三大步:(1)分词(2)去停用词(3)关键词提取分词方法有很多,我这里就选择常用的结巴jieba分词;去停用词,我用了一个停用词表。具体代码如下:importjiebaimportjieba.analyse#第一步:分词,这里使用结巴分词全模式text='''新闻,也叫消息,是指报纸、电台、电视台、互联网经常使用的记录社会、传播信息、反映
系统 2019-09-27 17:51:23 1858
爬虫即网络爬虫,英文是WebSpider。翻译过来就是网络上爬行的蜘蛛,如果把互联网看作一张大网,那么爬虫就是在大网上爬来爬去的蜘蛛,碰到想要的食物,就把他抓取出来。我们在浏览器中输入一个网址,敲击回车,看到网站的页面信息。这就是浏览器请求了网站的服务器,获取到网络资源。那么,爬虫也相当于模拟浏览器发送请求,获得到HTML代码。HTML代码里通常包含了标签和文字信息,我们就从中提取到我们想要的信息。通常爬虫是从某个网站的某个页面开始,爬取这个页面的内容,找
系统 2019-09-27 17:51:07 1858
算数运算符:+#加:两个对象相加-#减:得到负数或是一个数减去另一个数*#乘:两个数相乘或是返回一个被重复若干次的字符串/#除:x/y,x除以y%#取模:返回除法的余数**#幂:x**y,返回x的y次幂//#取整除:返回商的整数部分(向下取整)比较运算符:==#判断两个对象是否相等!=#判断两个对象是否不相等<>#判断两个对象是否不相等,py2可用,py3不可用<#判断是否小于<=#判断是否小于等于>#判断是否大于>=#判断是否大于等于逻辑运算符:与and
系统 2019-09-27 17:51:05 1858
美国队长的锅emmmmmmmm.......没错就是他的锅#所需依赖:python3pycharm#print打印print('helloworld!')#注释符号#井号后面灰色的内容是注释,相当于笔记,会被机器忽略#变量和值#n是变量,100是值,等号的作用是赋值#n相当于高中数学的xyz,只不过xyz的值只能是数字,变量的功能要更强大n=100m='hello'print(n)print(m)#数据类型,这里只讲两个,剩下的需要同学自己去系统地学习了#
系统 2019-09-27 17:50:55 1858
python程序运行中,可由程序抛出异常。异常触发:使用raise命令抛出异常,即可使用异常基类Exception,也可使用自定义异常类(继承Exception类)。classPoint:def__init__(self,x,y):self.x=xself.y=y#DefineaclasstoraiseLineerrorsclassLineError(Exception):#继承自基类Exceptiondef__init__(self,ErrorInfo)
系统 2019-09-27 17:50:11 1858
注意:python3.x已经不支持raw_input了,已经更替成了input。raw_input()str=raw_input("Enteryourinput:")input(),不能读到\n,读入一行,可以用连续的input来实现读入多行。input()函数和raw_input()函数基本能够互换。可是input会如果你的输入是一个有效的Python表达式,并返回运算结果。str=input("Enteryourinput:")n,k,m=map(in
系统 2019-09-27 17:49:31 1858
更新mysql8.17的脚本:2019-09-19#-*-coding:utf-8-*-importsysreload(sys)importgetoptimportcommandsimportsubprocessimportfileinputimportos__author__='Lenny'INFO="\033[1;33;40m%s\033[0m"ERROR="\033[1;31;40m%s\033[0m"NOTICE="\033[1;32;40m%s\
系统 2019-09-27 17:49:31 1858
采用Appium进行自动化的功能性测试最酷的一点是,你可以使用具有最适合你的测试工具的任何一门语言来写你的测试代码。大家选择最多的一个测试编程语言就是Python。使用Appium和Python为iOS和Android应用编写测试代码非常容易。在这篇博文中我们将详细讲解使用Appium下的Python编写的测试的例子代码对一个iOS的样例应用进行测试所涉及的各个步骤,而对Android应用进行测试所需的步骤与此非常类似。开始,先自https://githu
系统 2019-09-27 17:49:15 1858