Python3基础篇(二)——数据类型
Python3基础篇(二)——数据类型前言:阅读这篇文章我能学到什么? 这篇文章将为你介绍Python3的几种数据类型以及对这些数据类型的简单操作。 1 Python3变量的一般特征 与大多数脚本类似,Python3中变量的不需要单独定义,首次赋值即定义。由于赋值即完成定义的特征,在变量使用前都必须赋值(即使用前必须定义)。 对于Python3来说变量是不分类型的,我们讨论的皆为数据的类型,也即存储在变量内存当中的对象数据的类型。(所以标题叫数据类型而不是变量类型)与其他语言类似,我们使用=作为赋值操作符,将右侧表达式的值赋值给左侧变量,这个过程即完成了变量在内存空间的创建,也完成了表达式值的计算和存储。 12a = 1 + 1 #创建变量a,计算右侧表达式值并赋值给变量ab = a #变量之间赋值 对变量赋值操作。 1234a = 100 #a中存储整形数据a = 0.0001 ...
Python3基础篇(一)——基础知识
Python3基础篇(一)——基础知识前言:阅读这篇文章我能学到什么? 这是一篇Python3编程的入门开篇文章,在这篇里讲了一些最基本的Python3语法知识。比如Python3的语句结束标志、如何写注释、对缩进的要求、标识符命名规则、Python3有哪些保留字(关键字)、语句的书写规则、import的用法。掌握了这些基础知识将会为后续进一步学习python语法打下重要基础。 1 语句结束标志 Python3与c/c++、java等传统主流语言不同, ;号作为语句结束符一般可以被省略,因为python将换行也当作语句结束符号。 12a = 1b = 2; c = 3; d = 5 从上面的例子可以看出一行当中最后一个语句可以省略语句结束符; ,因为python把换行也当作语句结束符,而一行当中有多个语句时,除了最后一个语句,前面的语句不能省略 ;。 2 如何写注释 Python3的注释和c/c++语言注释类似,有行注释和块注释两种。 2.1...
Python3基础篇(一)——基础知识
gcc基础篇(一)——介绍及安装前言: 在Linux环境下做c开发,对gcc有所掌握是必要的。gcc可在Window或Linux下编译c语言生成可执行文件。学习gcc可以了解生成可执行程序的详细步骤,以及编译命令的选项配置。 1 GCC介绍 GCC(GNU Compiler Collection)即GNU编译器套件,属于一种编程语言编译器,其原名为GCC(GNU C Compiler)即GNU c语言编译器,虽然缩写一样但是功能上区别很大。GCC的初衷是为GNU操作系统专门编写的一款编译器,原本的GNU是专用于编译C代码,现如今已扩展为可以编译C、C++、Java、Objective-C等多种编程语言的编译器集合了。这篇文章主要介绍gcc或g++的使用。 gcc(GUN C Compiler)是GCC中的c编译器,而g++(GUN C++...
Vim常规操作——复制_粘贴_剪切(深入Vim寄存器)
Vim常规操作——复制、粘贴、剪切(深入Vim寄存器)前言:阅读这篇文章我能学到什么? 你可能想知道其他软件与vim之间,vim与其命令行之间如何进行复制、粘贴、剪切问题,那么就请阅读这篇文章。这篇文章将从Vim寄存器的作用角度解答你使用vim过程中进行复制、粘贴、剪切如何操作的问题,将会非常详细。 1. Vim寄存器 vim有很多寄存器,我们进行的复制粘贴操作实际就是往这些寄存器写或者读取内容的操作,要想更好的使用复制粘贴功能,需要对这些寄存器有基本的了解。这些寄存器各有其功能,以我现在使用的 gvim_8.2.0318_x64_signed 举例(不排除未来会有版本差异),它具有这么几类寄存器: 无名寄存器 “:缓存最近一次的内容,也是复制粘贴最常用的寄存器; 编号寄存器 0~9:缓存最近操作内容。其中0号寄存器有别其他,它缓存最近一次复制的内容,1~9缓存最近9次删除的内容。 命名寄存器 a~z或A~Z:指定名称的寄存器,可以由用户自由选择内容缓存进去。要注意的是大小写虽然对应同一个寄存器,但是功能有差异。 只读寄存器...
github issue提交Bug的格式
github issue提交Bug的格式前言: github早已在国内程序员中流行起来,我们经常会访问github上别人的源码或使用别人提供的插件,有时候会发现一些Bug希望作者能将其改进,这时候就可以考虑提交issue。 1...
主动笔的曲线校准方法
主动笔的曲线校准方法前言: 为了保证主动笔的书写体验,减小每一支笔之间的压力感知差异,在主动笔出货前一般会有一个校准过程。校准是指主动笔的压力曲线校准,这条压力曲线横轴是笔尖的克重压力,纵轴是输出到显示屏的压力等级。校准的目的就是保证随便拿一直笔,相同的力去书写使其粗细变化都是基本一致的。 1 主动笔的压力曲线1.1 什么样的压力曲线适合主动笔呢?很容易想到随着克重压力的增加,输出的压力等级也应该增加,也即压力和压力等级是正相关关系。那么更具体的曲线趋势应该是哪种呢?我们讨论如下三种: 指数函数关系; 一次函数关系(属于幂函数); 对数函数关系; 1.2...
单片机编码BPSK信号
单片机编码BPSK信号前言: 一些终端短距无限通讯的设备,依然选择使用电信号作为信号的载体,比如主动笔和触控屏之间。算然短距但是信号幅度不强又易受到干扰,通常传输中伴随着信号源的运动,比如笔在书写的过程中向屏发送信号等。这就要求我们选择的通讯方式要具有较强的抗干扰能力,从笔端到屏端发送的数据可以以BPSK码作为载波,增强信号传输过程中的抗干扰能力。本文介绍了如何通过单片机将数据转化为BPSK码发送。 1 什么是BPSK信号? BPSK(Binary phase Shift...
压力曲线
...
c代码命名规范
芯片AES加密密钥生成工具前言: 嵌入式单片机开发,为了防止别人将芯片内的代码读取出来通过反编译手段拿到源码,常用的手段是对芯片和烧录文件进行加密。大部分的芯片厂商都会提供一个加密烧录和配置文件的工具。这个工具一般需要你填写一定长度的密钥,如果密钥填写得太有规律比如:123456,或项目名+版本号等,这样的密钥对公司来说极度不安全,如果被对手知道别人很可能直接破解出你的源码,然后抄一下你的板就和你一模一样出货了,别人省去了开发成本何乐不为呢?所以本文介绍一种通过AES加密算法将明文转换为密文的工具制作。AES加密算法目前没有破解办法,据我所知微信小程序就用到了这种加密算法。 1 模块构成 制作这样的工具只需要三个模块即可完成,AES加密算法模块、芯片加密模块、GUI模块。本文使用Pathon3语言开发。 2...
SVN软件开发日志规范
SVN SVN软件开发日志规范前言: 写代码的好习惯除了言简意赅的注释外,还有完善且必要的日志。注释主要是对代码内的模块或功能函数、算法、逻辑框架等进行必要简明的说明,它关注的是”这个“代码里做了什么。而日志需要说明的是这版代码和上一版本改了什么(重点关注代码的升级迭代、用途、风险),和其他代码有啥关系(比如关注是否某些功能模块借鉴或移植于其他项目)。所以日志主要关注的是“这些”代码之间的关系(改动、移植),以及怎么用它,有何风险。所以不要觉得代码里写了足够的注释就不需要写Log了,经验丰富的软件开发们会形成自己完整的一套规范风格。 1...