1.获取当前时间的两种方法: import datetime,timenow = time.strftime("%Y-%m-%d %H:%M:%S")print nownow = datetime.datetime.now()print now 2.获取上个月最后一天的日期(本月的第一天减去1天) last = datetime.date(datetime.date.today().year,datetime.date.today().month,1)-datetime.timedel…
结合实例来理解比较好,网上找了一下这个enumerate用法,自己也记录一下加深印象 看一下相关链接: 链接1:http://www.cnblogs.com/danielStudy/p/6576040.html 链接2:http://blog.csdn.net/churximi/article/details/51648388 enumerate函数说明: 函数原型:enumerate(sequence, [start=0])  #第二个参数为指定索引 功能:将可循环序列sequence以sta…
字符串是一个有序的字符集合,用于存储和表现基于文本的信息. 常见的字符串常量和表达式 T1=‘’ 空字符串 T2="diege's" 双引号 T3="""...""" 三重引号块 T4=r'\temp\diege' Raw字符串 抑制(取消)转义,完全打印\tmp\diege,而没有制表符 T5=u’diege' Unicode字符串 T1+T2     合并 T1*3    重复 T2[i]    索引 T2[i:j] 分片…
Python中包含了许多内建的语言特性,它们使得代码简洁且易于理解.这些特性包括列表/集合/字典推导式,属性(property).以及装饰器(decorator).对于大部分特性来说,这些"中级"的语言特性有着完善的文档,并且易于学习. 但是这里有个例外,那就是描述符.至少对于我来说,描述符是Python语言核心中困扰我时间最长的一个特性.这里有几点原因如下: 有关描述符的官方文档相当难懂,而且没有包含优秀的示例告诉你为什么需要编写描述符(我得为Raymond Hettinger辩护一…
map和reduce都是Python中的内置函数 map函数接受两个参数,第一个参数是函数,第二个参数是列表,将函数依次作用于列表中的元素,并返回一个元素 reduce同样以函数和列表作为参数,区别在于,reduce的函数参数,接收两个参数,为列表参数的元素与之前运算的函数结果.可用于求和等. map和reduce大大减少了代码量,提高了代码的易读性.可根据需求配合python的其他内置函数使用,比如lambda,capitalize等.…
堆(heap):优先队列的一种,使用优先队列能够以任意顺序增加对象,并且能在任意时间(可能在增加对象的同时)找到(也可能是移除)最小元素,比用于列表中min的方法要高效. Python中并没有独立的堆类型,只有一个包涵一些堆操作函数的模块,这个模块叫heapq.…
在python中,每个py文件都是一个模块,也都是一个可执行文件,即包含main方法.因此,对每个py文件,可以单独运行,也可以import它给其他客户使用,这两种情况不一样. 1. 如果模块是被导入,__name__的值为模块名字2. 如果模块是被执行,__name__的值为’__main__’ #hello.py def sayHello(): str="hello," print(str); if __name__ == "__main__": print (…
Python中只有一个赋值模型 一.缺少类型声明语句的情况 在Python中,类型是在运行过程中自动决定的,而不是通过代码声明.这意味着没有必要事声明变量.只要记住,这个概念实质上对变量,对象和它们之间的关系都适用.那么这个概念也容易理解并掌握. 1.变量,对象和引用 变量创建:一个变量,当代码第一次给它赋值时它就被创建了.之后的赋值将会改变已创建的变量名的值.Python在代码运行之前先检测变量名,可以当成是最初的赋值创建变量. 变量类型:变量永远不会有任何的它关联的类型信息或约束.类型的概念…
<构建之法:现代软件工程>中第2章对效能分析进行了介绍,基于的工具是VSTS.由于我教授的学生中只有部分同学选修了C#,若采用书中例子讲解,学生可能理解起来比较困难.不过所有这些学生都学习过Python,因此我就基于书中对效能分析的介绍,结合Python效能分析工具的文档以及互联网上的博客,准备了一份关于效能分析的讲座,内容如下. 什么是效能分析? 这部分的讲解和书中类似.不过有两个问题: 为什么是效能不是效率,两者之间究竟有什么区别?这是学生提出的问题.个人觉得二者之间的差别不大. 效能分析…
第一章:  python 基础语法 第  2  部分: 一.猜年龄练习题解答 直接上代码 >>> age = 26 >>> count = 0 >>> while count < 3: ... user = int(input("请输入你要猜的答案:")) ... if user == age : ... print("恭喜你答对了,快去领取奖励吧!") ... break ... elif user &l…
一.任务描述 最近尝试自行构建skip-gram模型训练word2vec词向量表.其中有一步需要统计各词汇的出现频率,截取出现频率最高的10000个词汇进行保留,形成常用词词典.对于这个问题,我建立了两个list,词汇list 和 词汇数量list,分别记录新出现的词汇和该词汇出现的次数.遍历整个语料文件,收集各个词汇并计算其出现次数.最后,对词汇数量list进行降序排序,留下出现频率最高的10000个词汇.流程大致如下图: 二.问题描述 在程序实际运行的过程中,发现程序运行的速度实在是太慢.对…
注释 目标 注释的作用 单行注释 多行注释 01注释的作用 在程序中对代码的标注说明,增强代码的可读性 以 # 开头,# 右边的所有东西都被当做说明文字,而不是真正要执行的程序,只起到辅助说明作用 为了保证代码的可读性,# 后面建议先添加一个空格,然后再编写相应的说明文字 示例代码: # 在屏幕上输出helloworldprint("helloworld") 02 单行注释(行注释) 表示注释一行 # 被注释后的代码不会被执行,所以这里不会打印helloworld# print(&qu…
在java.c#等高级语言中我们用static来定义静态方法和静态变量,那么在python中如何定义静态方法和静态变量呢. python提供了@classmethod和@staticmethod来定义静态方法,刚接触的时候不太明白,Stack Overflow提供了一个比较方便理解的解释,Stack Overflow回答. 但是看完还是不太理解,于是自己写了个实例: class stclass(): d=1 #对象方法 def imethod(self): print(self) print("…
==是比较两端的值 is是比较内存地址: 数据的内存地址可用id()获取 在Python中为了存储数据占用较小的内存,对于int类型和str类型内设了小数据池,其中的数据在被使用时,会使用同一内存地址. int类型的小数据池: 数字的小数据池的范围是-5~256 >>> a = -6 >>> b = -6 >>> a is b False str类型的小数据池: 1.字符串中不能包含特殊字符 >>> s1 = 'abcd+' >…
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie 1.PyListObject对象 --> 变长可变对象,可看作vector<PyObject *> typedef struct{ PyObject_VAR_HEAD //当中的ob_size表示实际被使用的内存的数量 PyObject **ob_item;//ob_item为指向元素列表的指针,实际上,Python中的list[0]就是ob_item[0] int allocat…
有些时候你的项目中难免需要一些全局唯一的对象,这些对象大多是一些工具性的东西,在Python中实现单例模式并不是什么难事.以下总结几种方法: 使用类装饰器 使用装饰器实现单例类的时候,类本身并不知道自己是单例的,所以写代码的人可以不care这个,只要正常写自己的类的实现就可以,类的单例有装饰器保证. def singleton(cls): instancec = {} def _wrapper(*args,**kwargs): if cls not in instances: instances…
生成器就是一个在行为上和迭代器非常类似的对象.   是个对象! 迭代,顾名思意就是不停的代换的意思,迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果.每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值. 迭代器就是用于迭代操作(for 循环)的对象.它像列表一样可以迭代获取其中的每一个元素,任何实现了 __next__ 方法(python2 是 next)的对象都可以称为迭代器. 它与列表的区别在于,构建迭代器的时候,不像列表把所有元素一次性加载到内存…
is比较的是id(内存地址)是不是一样,==比较的是值是不是一样 Python中,万物皆对象!万物皆对象!万物皆对象!(很重要,重复3遍) 每个对象包含3个属性,id,type,value id就是对象地址,可以通过内置函数id()查看对象引用的地址. type就是对象类型,可以通过内置函数type()查看对象的类型. value就是对象的值. 老师给你举个例子: a = 1 b = a c = 1 d = 1.0 这里有3个对象abc,类型都是int.值都是1. id(a) # 3555679…
python中模块互相调用容易出错,经常是在本地路径下工作正常,切换到其他路径来调用,就各种模块找不到了. 解决方法是通过__file__定位当前文件的真实路径,再通过sys.path.append()来获取相对路径更新$PATH即可. 假设代码结构如下: - mod_a __init__.py # 模块文件夹内必须有此文件 aaa.py - mod_b __init__.py # 模块文件夹内必须有此文件 bbb.py - ccc.py 调用同级模块 如果aaa.py要调用bbb.py的内容,…
configparse主要用于在python中进行配置文件的读取. 基本的读取配置文件: -read(filename) 直接读取ini文件内容 -sections() 得到所有的section,并以列表的形式返回 -options(section) 得到该section的所有option -items(section) 得到该section的所有键值对 -get(section,option) 得到section中option的值,返回为string类型 -getint(section,opt…
Python3中的String类型 首先,Python中没有字符类型,只有字符串类型.单个字符按照长度为1的字符串处理,这对于曾是OIER的我来说有点不适应啊. 字符串的表示方法 最常用的就是用一对双引号或一对单引号把一串字符括起来,像这样 'Hello world!' 或 "Hello world!" .这两种表示方法可以说完全一样,没啥区别.这两种完全一样的东西存在的目的貌似只有一个,如果字符串中含有一个单引号,就要用双引号括起来,避免单引号匹配不起来,像这样 "I'm…
python数据类型 数字类型 整数(int) 与数学中整数概念一致(数字大小没有限制,这和其他语言不同),整数可正可负,默认情况下,整数采用十进制.其他进制需要增加相应的引导符号. 如果是二进制在前面加上0b或者0B即可,如果是八进制在前面加上0o或者0O即可,如果是十六进制在前面加上0x或者0X即可. 浮点数(float) 与数学中的实数概念一致,取值范围与精度都有限制. 表达方式: 1.小数:1.23,3.14,-9.01 2.科学计数法:1.23e9,1.2e-5 浮点数运算存在不确定位…
Python中一切皆对象 本章节首先对比静态语言以及动态语言,然后介绍 python 中最底层也是面向对象最重要的几个概念-object.type和class之间的关系,以此来引出在python如何做到一切皆对象.随后列举python中的常见对象. 1.Python中一切皆对象 Python的面向对象更彻底,Java和C++中基础类型并不是对象.在Python中,函数和类也是对象,属于Python的一等公民.对象具有如下4个特征 1.赋值给一个变量 2.可以添加到集合对象中 3.可以作为参数传递…
标准库模块 python中通过re模块使用正则表达式 import re 常用方法 生成正则表达式对象 compile(pattern[,flags]) pattern:正则表达式字符串 flags:re.I 匹配不区分大小写 re.S .为包括换行在内的所有字符(原本.不包括换行) 匹配字符串 match(pattern,string,[flags]) 在起始位置匹配,若起始位置不匹配,返回None,反之返回Match对象 search(pattern,string,[flags]) 搜索字符…
python中有大量的内置模块,很多是属于特定开发的功能性模块,但collections是属于对基础数据的类型的补充模块,因此,在日常代码中使用频率更高一些,值得做个笔记,本文只做主要关键字介绍,详细的功能仍然要翻阅官方文档,地址如下: 英文站:https://docs.python.org/3.5/library/collections.html 中文站:http://python.usyiyi.cn/translate/python_352/library/collections.html#…
进程和线程究竟是什么东西?传统网络服务模型是如何工作的?协程和线程的关系和区别有哪些?IO过程在什么时间发生? 一.上下文切换技术 简述 在进一步之前,让我们先回顾一下各种上下文切换技术. 不过首先说明一点术语.当我们说“上下文”的时候,指的是程序在执行中的一个状态.通常我们会用调用栈来表示这个状态——栈记载了每个调用层级执行到哪里,还有执行时的环境情况等所有有关的信息. 当我们说“上下文切换”的时候,表达的是一种从一个上下文切换到另一个上下文执行的技术.而“调度”指的是决定哪个上下文可以获得接…
注意:对于我这个以前用c/c++的同学来说,可能一开始学习pyhon时有点不适应的,为什么呢?因为吧,python中,没有这玩意:{},也不用每句话才用分号分开的.python中通过缩进来分块的,一行占个句话就可以啦.下面的学习基于python2.7 from __future__import division 开始啦,边学习边作笔记 参考http://www.liaoxuefeng.com/,另外,还有其它的一些资料. 基本输入输出语句print和raw_input(): #输入语句: >>…
最近对Python 的对象引用机制稍微研究了一下,留下笔记,以供查阅. 首先有一点是明确的:「Python 中一切皆对象」. 那么,这到底意味着什么呢? 如下代码: #!/usr/bin/env python a = [0, 1, 2] # 来个简单的list # 最初,list 和其中各个元素的id 是这样的. print 'origin' print id(a),a for x in a: print id(x), x print '----------------------' # 我们把…
python中与时间相关的一个模块是time模块,datetime模块可以看为是time模块的高级封装. time模块中经常用到的有一下几个方法: time()用来获取时间戳,表示的结果为从1970年1月1日开始计算到现在时间之间的秒数.如:time.time()输出:1507727656.9446979 #今天是2017/10/11 21:15:00 localtime()获取当前时间信息.包含年月日时分秒等等.返回结果以元组的形式返回.如:time.localtime()输出:time.st…
关键字:名称,名称空间,引用,指针,指针类型的指针(即指向指针的指针) 我读完后的理解总结: 1. 我们知道,python中的变量的赋值操作,变量其实就是一个名称name,赋值就是将name引用到一个object对象.name就可以看作是指向object的指针. 2. 有了name看作指针的概念.当一个类A定义时,定义了一个类属性名字叫class_attr01. 代码如下: class A(object): class_attr01 = 666 def test(self): pass a_ob…