分类存档: 编程

理解KMP匹配算法

两篇比较好的文章:阮一峰的网络日志  和 jBoxer

下面是我阅读 Jake Boxer  的文章时做的笔记。应该可以帮助理解。

KMP的关键是“部分匹配表”。而理解KMP的关键是领会“部分匹配表”中值的含义。下面看看模式字符串”abababca”的部分匹配表。
char: | a | b | a | b | a | b | c | a |
index: | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
value: | 0 | 0 | 1 | 2 | 3 | 4 | 0 | 1 |
对于一个8个字符长度的模式串,部分匹配表长度也为8. 继续阅读 »

一个简单算法的不同处理方式

”’ ————-
要输出如下图形:
      * 
    * # * 
  * # * # * 
* # * # * # * 

继续阅读 »

Python在嵌入式开发中的应用——数据示波器

Python在嵌入式开发中的应用
引言
在嵌入式开发中我们常常要进行数据分析、算法设计、原型验证、自动化测试、辅助工具设计,每个环节的工作效率对整体的开发都非常重要。选用一个好的辅助开发工具是非常必要的。Python作为一门解释型语言,容易上手,应用广泛,拥有众多功能强大的第三方库,开发平台轻量化,不想VS,非常适合嵌入式开发中的辅助开发。

1 本文概要
本文主要介绍使用Python实现一个类似于示波器,能实时观察传感器数据的辅助工具。这个需求源于项目的需要,使用这个工具能实时观察sensor数据的变化,并对实时数据做简单分析,对算法设计有很大的帮助。通过后续更新可以加入算法,实时验证算法,进行原型验证。本文首先介绍需要使用的Python相关库,然后介绍工具的使用情况。
继续阅读 »

内码(MBCS)和nuicode码

计算机发明后,为了在计算机中表示字符,人们制定了一种编码,叫做ASCII码,ASCII码由一个字节中的7位(bit)表示,范围是0x00-0x7F共128个字符。用这128个数字  表示abcd…ABCD…1234….这些字符。后来又扩展了ASCII码的定义,使用一个字节的全部8位(bit)来表示字符了。这就叫扩展 ASCII码。范围是0x00-0xFF共256个  字符。
后来,中国人利用连续2个扩展ASCII码的扩展区域(0xA0以后)来表示一个汉字,该方法的标准叫GB-2312。后来,日文、韩文、阿拉伯文、台湾繁体都使用类似的方法扩展  了本地字符集的定义,现在统一称为MBCS字符集(多字节字符集)。这种方法是有缺陷的,因为各个国家的定义的字符集有交集,因此使用GB2312的软件,就不能在  BIG-5的环境下运行(显示乱码)。
为了把全世界的所有的文字符号都统一进行编码,于是制定了UNICODE标准字符集。UNICODE使用2个字节表示一个字符。这下终于好啦,全世界任何一个地区的软件,可以  不用修改就能在另一个地区运行了。UNICODE的范围是0x0000-0xFFFF共6万多个字符。 继续阅读 »

python中函数参数传递的几种方法

本文转自豆瓣

Python中函数参数的传递是通过“赋值”来传递的。但这条规则只回答了函数参数传递的“战略问题”,并没有回答“战术问题”,也就说没有回答怎么赋值的问题。函数参数的使用可以分为两个方面,一是函数参数如何定义,二是函数在调用时的参数如何解析的。而后者又是由前者决定的。函数参数的定义有四种形式:

1. F(arg1,arg2,…)
2. F(arg2=,arg3=…)

3. F(*arg1)

4. F(**arg1) 继续阅读 »

Python笔记——使用popen与外部进程通信

在Python中如果我们需要调用外部进程,则使用
os.system(CmdLine)
即可实现。但有时候不仅需要调用外部程序,还需要知道外部程序的处理结果,并根据响应结果做出对应操作,使用popen2模块即可实现这个功能。实际上是把stdout和stdin从定向到一个文件对象,然后通过读写这个文件对象来获取外部进程的输出或者向外部进程发送数据。

import popen2
stdout,stdin = popen2.popen2("ping www.baidu.com")
while True:
    ostr = stdout.read()
    if ostr:
        print ostr
    else:
        break

Python实现hex文件转bin文件

因为IAR工程编译时不能同时生成hex文件和bin文件,如果选择生成bin文件则会删除之前的hex文件,而我们需要同时有hex文件和bin文件,所以自己要写一个工具在编译完成后自动把hex文件转为bin文件。

在网上找到了Python实现的转换脚本,很好用,一个简单的函数。特转载如下,感谢原作者分享,原文地址 继续阅读 »

将python脚本打包为window可以执行的exe

py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具,这样,你就可以不用装python而在windows系统上运行这个可执行程序。
py2exe已经被用于创建wxPython,Tkinter,Pmw,PyGTK,pygame,win32com client和server,和其它的独立程序。py2exe是发布在开源许可证下的。

继续阅读 »

第 1 页,共 5 页12345