密码算法程序设计实践选的SHA-1。在写的过程中遇到一丢丢关于python移位的问题,记录一下。SHA-1其中第一步需要填充消息。简单阐述一下sha1填充消息的过程:如输入消息“123”,先转成ascii码――313233,消息长度为3*8=24。即001100010011001000110011然后填充一个1占1bit,再填充447-24bit个0。10000000...00000000最后64bit加上消息长度24的二进制00011000二进制相当于是
系统 2019-09-27 17:52:18 2144
一代码编排1缩进4个空格的缩进(编辑器都可以完成此功能),不要使用Tap,更不能混合使用Tap和空格。2每行最大长度79,换行可以使用反斜杠,最好使用圆括号。换行点要在操作符的后边敲回车。3类和top-level函数定义之间空两行;类中的方法定义之间空一行;函数内逻辑无关段落之间空一行;其他地方尽量不要再空行。二文档编排1模块内容的顺序:模块说明和docstring―import―globals&constants―其他定义。其中import部分,又按标准
系统 2019-09-27 17:51:16 2144
模块概述如果说模块是按照逻辑来组织Python代码的方法,那么文件便是物理层上组织模块的方法。因此,**一个文件被看作是一个独立模块,一个模块也可以被看作是一个文件。模块的文件名就是模块的名字加上扩展名.py。与其它可以导入类(class)的语言不同,在Python中你导入的是模块或模块属性**。模块名称空间一个名称空间就是一个名称到对象的关系映射.导入模块导入模块整体(import)方式一复制代码代码如下:importmodule1importmodul
系统 2019-09-27 17:50:08 2144
在pycharm使用过程中,对于每次新建文件的编码格式和关于代码编写者的一些个人信息快捷填写,方法如下:1.打开pycharm,选择File-Settings(Ctrl+Alt+S),再选择Editor--Color&Style--FileandTemplates--Python-Script可以使用搜索快速找到"FileandCodeTemplates",右侧菜单选择"PythonScript",对模板进行编辑2.编辑内容预定义的变量要扩展为格式为${}
系统 2019-09-27 17:49:42 2144
使用PyCharm向世界打招呼!print(“Helloworld!”)介绍自己的基本信息的方法name=input("name:")age=int(input("age:"))#integer强转义成数字print(type(age),type(str(age)))job=input("job:")salary=input("salary:")#一.info='''-------infoof%s--------Name:%sAge:%dJob:%sGZ:
系统 2019-09-27 17:49:38 2144
玩转Python量化金融工具之NumPy一切事物的开头总是困难这句话,在任何一种科学上都是适用的。——马克思前言“手把手教你”系列将为Python初学者一一介绍Python在量化金融中运用最广泛的几个库(Library):NumPy(数组、线性代数)、SciPy(统计)、pandas(时间序列、数据分析)、matplotlib(可视化分析)。建议安装Anaconda软件(自带上述常见库),并使用JupyterNotebook交互学习。1、使用“import
系统 2019-09-27 17:49:04 2144
目前手边的一些工作,需要实现声音播放功能,而且仅支持wav声音格式。现在,一些网站上支持文字转语音功能,但是生成的都是MP3文件,这样还需要额外的软件来转成wav文件,十分麻烦。后来,研究Python,发现Python可以很容易的实现上面的功能。步骤如下,1。使用百度语音实现TTS(TextToSpeech),生成mp3文件;2。使用pydub和ffmpeg实现mp3转wav格式。下面,先上简单的示例代码,然后对代码作简单的分析。#!/usr/bin/py
系统 2019-09-27 17:48:39 2144
我们已知python是具有非常多的包一种开源语言,封装了各种算法。python典型的数据结构为列表/元组/字符串/字典,与C/C++中的数组(array)/栈(stack)/(优先)队列”(queue)/二叉树(binarytree)有明显区别。在python官网中指出,列表可以作为栈和队列使用,但是并未给出特别详细具体的教程。在python官网上有关于list和dict数据结构的描述参考,如链接所示,但是没有关于时间复杂度和空间复杂度的分析。本文是对官网
系统 2019-09-27 17:47:00 2144
如何使用模板系统让我们深入研究模板系统,你将会明白它是如何工作的。但我们暂不打算将它与先前创建的视图结合在一起,因为我们现在的目的是了解它是如何独立工作的。。(换言之,通常你会将模板和视图一起使用,但是我们只是想突出模板系统是一个Python库,你可以在任何地方使用它,而不仅仅是在Django视图中。)在Python代码中使用Django模板的最基本方式如下:可以用原始的模板代码字符串创建一个Template对象,Django同样支持用指定模板文件路径的方
系统 2019-09-27 17:37:55 2144
今天想用python的装饰器做一个运算,代码如下>>>defmu(x):def_mu(*args,**kwargs):returnx*xreturn_mu>>>@mudeftest(x,y):print'%s,%s'%(x,y)>>>test(3,5)Traceback(mostrecentcalllast):File"",line1,intest(3,5)File"",line3,in_mureturnx*xTypeError:unsupportedop
系统 2019-09-27 17:37:36 2144
三目运算符也就是三元运算符一些语言(如Java)的三元表达式形如:判定条件?为真时的结果:为假时的结果result=xifxPython的三元表达式有如下几种书写方法:if__name__=='__main__':a=''b='True'c='False'#方法一:为真时的结果if判定条件else为假时的结果d=bifaelsecprint('方法一输出结果:'+d)#方法二:判定条件and为真时的结果or为假时的结果d=aandborcprint('方法
系统 2019-09-27 17:37:35 2144
什么是序列化什么是序列化,把程序中的对象或者变量,从内存中转换为可存储或可传输的过程称为序列化。在Python中,这个过程称为pickling,在其他语言中也被称为serialization,marshalling,flattening等。程序中的对象(或者变量)在序列化之后,就可以直接存放到存储设备上,或者直接发送到网络上进行传输。序列化的逆向过程,即为反序列化(unpickling),就是把序列化的对象(或者变量)重新读到内存中~Python中序列化的
系统 2019-09-27 17:56:23 2143
BacktoOpenCVIndeximage#tocreateanewimageblank_image=np.zeros((height,width,3),np.uint8)#imagesize##forgrayimagerows,cols=img.shapeh,w=img.shape##forcolorimagerows,cols,channels=img.shapeh,w,c=img.shapeAPIs有些C++中的基础数据结构,比如Point,Poi
系统 2019-09-27 17:55:30 2143
概述Python3中函数参数一般都是通过赋值进行传递的,而调用者只需要知道如何正确的传递参数即可直接使用函数,位置参数即我们使用最频繁的参数传递方法,通过参数的默认位置从左到右进行匹配deff(x,y,z):print(x,y,z)f(1,2,3)示例结果:123关键词参数我们可以通过函数参数关键字进行参数传递,此时参数的传递是通过变量名匹配,而不是位置的方式匹配,所以在我们在使用混合的基于位置的参数和基于关键字的参数传递的原则就是,先基于位置的参数从左到
系统 2019-09-27 17:55:29 2143
我们搞了个python的工具包PyTls。做这件事的初衷是发生了一个星期要用python同时开发3个项目的情况,我发现了两个现象:1.有很多定制化的需求是极度高频反复重写的;2.有很多功能之前写过,可能因为稍许复杂又忘了,再用的时候又要去Google。所以,拉着同组的一个实习生,一起维护了PyTls的这个项目,为的就是那句"lifeisshort,weneedpython"。所有的详细的测试demo都可以在我的git找到,PyTls的测试demos希望可以
系统 2019-09-27 17:54:40 2143