三引号完全原样输出print(r"""xx\n\adaadf=?aa“”")重复输出print(3*“ab”)print(“ab”*3)abababababab3、列表定义x=“world”y=[1,2,3,4,5]索引(负数从右边开始,正数从左边开始)print(x[0])print(y[4])print(x[-2])print(y[-1])print(y[-5])print(x[-5])w5l51w切片x=“world”y=[1,2,3,4,5]pri
系统 2019-09-27 17:51:22 1973
转:https://www.jianshu.com/p/4be85de84d2a本机环境:Windows1064位Anacondapython3.7报错信息:pipisconfiguredwithlocationsthatrequireTLS/SSL,howeverthesslmoduleinPythonisnotavailable.解决方法:原因:Anaconda环境变量未配置完全需要配置的环境变量:D:\ProgramData\Anaconda3D:\
系统 2019-09-27 17:50:37 1973
生成器就是自己用python代码写的迭代器,生成器的本质就是迭代器。通过以下两种方式构建一个生成器:1、通过生成器函数2、生成器表达式生成器函数:函数deffunc1(x):x+=1returnxprint(func1(5))生成器函数deffunc1(x):x+=1yieldxg_obj=func1(5)print(g_obj.__next__())一个next对应一个yield。yieldVSreturnreturn结束函数,给函数的执行者返回值yie
系统 2019-09-27 17:50:36 1973
平时做数据处理基本离不了日志记录功能。每次都配置一堆挺烦人,索性封装个模块,这里记录一下,与大家共享。说明本日志模块目前只有一个方法getLogger,其他配置项通过参数传递,包括日志文件名,等级,日志文件划分方式,日志清除配置,日志格式等。logger.pyimportloggingfromloggingimporthandlers#日志级别字典__level_dict={'critical':logging.CRITICAL,'fatal':loggi
系统 2019-09-27 17:50:32 1973
队、栈和链表一样,在数据结构中非常基础一种数据结构,同样他们也有各种各样、五花八门的变形和实现方式。但不管他们形式上怎么变,队和栈都有其不变的最基本的特征,我们今天就从最基本,最简单的实现来看看队列和堆栈。不管什么形式的队列,它总有的一个共同的特点就是“先进先出”。怎么理解呢?就像是超市排队结账,先排队的人排在队的前面,先结账出队。这是队列的特征。而堆栈则和队列相反,它是“先进后出”,怎么理解呢?基本所有的编辑器都有一个撤销功能,就是按Ctrl+Z。当你写
系统 2019-09-27 17:50:25 1973
原题|Left-recursivePEGgrammars作者|GuidovanRossum(Python之父)译者|豌豆花下猫(“Python猫”公众号作者)声明|本翻译是出于交流学习的目的,基于CCBY-NC-SA4.0授权协议。为便于阅读,内容略有改动。我曾几次提及左递归是一块绊脚石,是时候去解决它了。基本的问题在于:使用递归下降解析器时,左递归会因堆栈溢出而导致程序终止。【这是我的PEG系列的第5部分。其它文章参见这个目录】假设有如下的语法规则:ex
系统 2019-09-27 17:49:42 1973
列表列表是内建的数据结构,用来存储一系列元素。列表与字符串相同点:都支持索引([]运算符)、切片([:])、拼接(+)、重复(*)、成员(in运算符)、长度(len()函数)和循环(for)操作。不同点:列表使用[]生成,元素之间用逗号分离,字符串使用成对引号生成;列表可以包含多种类型的对象,字符串只能是字符;列表的内容是可变的,字符串一旦生成就不可变。列表的可变性可以对列表中的任意元素进行重新赋值,如:lst[0]=‘a’可以通过切片操作对子列表进行赋值
系统 2019-09-27 17:49:26 1973
原文链接:https://my.oschina.net/xiaocon/blog/199414finally关键字的意思是只要异常,到最后都会执行语句块。。。#!/usr/bin/pythonimporttimetry:f=file('poem.txt')whileTrue:line=f.readline()iflen(line)==0:breaktime.sleep(2)printline,finally:f.close()print'file.clos
系统 2019-09-27 17:49:21 1973
下面通过几个案例来分析一下,注意:本节的parsematch函数请参考《妙用re.sub分析正则表达式解析匹配过程》案例一:>>>re.findall(r".*.*(.*)",'第二回悟彻菩提真妙理断魔归本合元神')['断魔归本合元神']>>>parsematch(r".*.*(.*)",'第二回悟彻菩提真妙理断魔归本合元神')第1次匹配,匹配情况:匹配子串group(0):第二回悟彻菩提真妙理断魔归本合元神,位置为:(0,19)匹配子串group(1):
系统 2019-09-27 17:48:48 1973
*args和**kwargs*args代表位置参数,它会接收任意多个参数并把这些参数作为元组传递给函数。**kwargs代表的关键字参数,允许你使用没有事先定义的参数名,另外,位置参数一定要放在关键字参数的前面。__new__和__init__的区别创建一个新实例时调用__new__,初始化一个实例时用__init__,这是它们最本质的区别。new方法会返回所构造的对象,init则不会.new函数必须以cls作为第一个参数,而init则以self作为其第一
系统 2019-09-27 17:48:29 1973