Python3中已经不能使用cmp()函数了,被如下五个函数替代: import operator #首先要导入运算符模块 operator.gt(1,2) #意思是greater...= b gt(a,b) 相当于 a > b ge(a, b)相当于 a>= b 函数的返回值不是布尔哦。这点需要注意,还是跟cmp一样返回的是数值
一、try...finally 高级语言通常都内置了一套try...except...finally...的错误处理机制,Python也不例外.......finally语法的。 ...with EXPRESSION [ as VARIABLE] WITH-BLOCK 基本思想是with所求值的对象必须有一个__enter__()方法,一个__exit__()方法。...紧跟with后面的语句被求值后,返回对象的__enter__()方法被调用,这个方法的返回值将被赋值给as后面的变量。...当with后面的代码块全部被执行完之后,将调用前面返回对象的__exit__()方法。
最近用python写个东西,里面用到了一个zip,内存飙升,甚是费解,查阅资料后发现zip在python2和3中的机制不同 class Foo(object): def __init__(...foo1 = Foo() foo2 = Foo() print(zip(foo1, foo2)) # for s1, s2 in zip(foo1, foo2): # print(s1, s2) python2..._', 2) ('__getitem__', 3) [(0, 0), (1, 1), (2, 2)] python3 # 输出: 可以看到python2...中是先把2个foo**全部遍历一下组成一个新的列表,十分耗内存** 而python3是返回一个迭代器,遍历zip(foo1, foo2)时才会去取foo1和foo2的每个元素,不费内存 ---- (...Color的回)[https://www.zhihu.com/question/22089964]
从外部写入字符串 查看python默认编码 >>>import sys >>>sys.getdefaultencoding()#'utf-8' python3 是默认'utf-8'编码的 如果是python2...import sys >>>from imp import reload >>>reload(sys) >>>sys.setdefaultencoding('utf-8')#python3无法运行,只能在python2...上运行 将字节串写入文件 从外部导入字符串时, 需要将其转换成python易处理的'utf-8'格式 例如: >>>string.decode('ascii') 当想将'utf-8'字节串写入外部, 并以...'utf-8'编码, 而不是windows默认的'gbk' 可直接将'utf-8'的字节串以字节形式写入文本 >>>string = '\xe7\xbe\x8e\...从外部读取文本时, 应视为字节串, 对应的是decode方法,将其解码成文本 将文本导出时, 对应的是encode方法,将其编码成字节串
python2不是以unicode作为基本代码字符类型,碰到乱码的几率是远远高于python3,但即便如此,相信很多人,也不想随意的迁移到python3,这里就总结几个我平常碰到的问题及解法。...文件中无法使用中文注释 处理方法: 在代码中增加# -*- coding=UTF-8 -*-,一般加在文件头部第一行,如果第一行是脚本标志,则放在第二行(实际仍然是python正本的第一行)。...此方法可以解决注释中有中文,及字符串立即数中包含中文的问题。 unicode中文变量打印出来是乱码 处理方法: 文件开始引入扩展库的部分加入以下3行代码。...及其它编码也是这样用) print str.decode('UTF-8').encode('GBK') #gbk转换成utf-8 print str.decode('GBK').encode('UTF-8') 参数中的...(poetry_file, "r","utf-8") as f: print打印出来的结构中的汉字是乱码 print仅打印一个utf-8的变量是不会有问题的,比如 a="汉字" print a #会正常显示
大家好,又见面了,我是你们的朋友全栈君。...python2与python3 的区别: 1、input: python2中input需要用户指定输入的类型,以下代码体现了这点 #特点是:把用户输入什么类型,就存成什么类型 x=input('>...>: ') print(x,type(x)) 2、python2中的raw_input与python3中的input效果相同无须指定类型,均为字符型 1 #在python2中有raw_input与...python3的input是一个意思 2 #特点是:把所有用户的输入都转成字符串类型 3 #python2: 4 username=raw_input('please input your name...: ') 5 print(username,type(username)) 6 7 8 #python3: 9 #username=input('请输入你的用户名:') 10 #print
python3中的filter与python2中的是不一样的 其中,在python2中 filter(function, iterable) filter返回的是一个list,可以直接使用它 #...在python2中 q = filter(lambda x:x%2 == 0, range(1,10)) print(q) #输出:「 2,4,6,8」 然而在python3中就不一样了; filter...返回的并不是一个list,而是一个filter对象 结果是: 应该将filter转换成list,如下: q = list(filter
1、cmp(x,y)方法,python2中用于比较x与y的值。...python3中用operator中的 lt,le,eq,ne,ge,gt 进行比较,如下: lt(a, b) 相当于 a < b le(a,b) 相当于a<=b eq(a,b) 相当于a==b ne(...=b gt(a,b) 相当于 a>b ge(a,b) 相当于 a>=b 2.字典中的 has_key()方法用 in 替换 例如: d = {} d.has_key('name') 可替换为 d = {...字典中的items()方法;range(); zip()等方法返回的手势一个对象,需要用list()取用 4.range()方法等同于xrange() 5. python3已经把urllib2, urlprase...(url).read() urllib.request.urlretrieve(a,b,c) 6. python3中可以直接import pickle 替换python2中的import
先说下概念和差异: 脚本字符编码:就是解释器解释脚本文件时使用的编码格式,可以通过 # -\*- coding: utf-8 -\*- 显式指定 解释器字符编码:解释器内部逻辑过程中对 str 类型进行处理时使用的编码格式...Python2 中默认把脚步文件使用 ASCII 来处理(历史原因请 Google) Python2 中字符串除了 str 还有 Unicode,可以用 decode 和 encode 相互转换 Python3...Python2 中默认把脚步文件使用 ASCII 来处理」,但是脚步文件包含了中文,ascii 又没有覆盖中文,所以报错。...总结下结论: Python2 脚步文件尽量使用 gbk 格式存储;同理 Python3 脚步文件尽量使用 utf-8 格式存储; Python2 脚步如果带有中文字符时,请务必在脚本开头声明能支持中文的脚本文件编码...; Python2 中对同一个字符串的 encode 和 decode 编码格式请保持一致; 说明:本次所有测试脚本文件均保存为 utf-8 格式 本文原创发布于公众号「sylan215」,十年测试老兵的原创干货
在 Python2 中如要想要获得用户从命令行的输入,可以使用 input() 和 raw_input() 两个函数,那么这两者有什么区别呢?...我们先借助 help 函数来看下两者的文档注释: >>> help(raw_input) Help on built-in function raw_input in module __builtin_...值得注意的是,文档还提到“On Unix, GNU readline is used if enabled. ”, 这是说,如果 *nix 系统中安装了 GNU readline 库,并且在 python...而 input() 其实是在 raw_input() 返回的结果上再 调用了 eval() 函数,把原始字符串计算成 python 可以识别的对象。...在 Pyhon3 中,已经没有 raw_input() 函数了,而剩下 input() 函数与 Python2 中的 raw_input() 行为一致: >>> help(raw_input) Traceback
在YiiChina签到的时候,经常会看到有人在说说里面发群主是最帅的,yii 是 PHP 最好的框架,没有之一,就想到使用一言,在每天签到的时候也发一句话 同时使用方糖将内容推送到微信,防止有什么不对的内容...byte 0xe5 in position 0: ordinal not in range(128) 再三确认文件头含有# coding=utf-8,没问题啊 经过搜索,发现应该是因为Python2.x的默认编码是...ascii,而代码中可能由utf-8的字符导致,解决方法是设置utf-8 使用Python自带模块sys修改编码 sys.getdefaultencoding() # 获取系统当前编码,一般默认为 ascii...sys.setdefaultencoding() # 设置系统默认编码 所以在代码中的import后增加下面几行代码: import sys if sys.getdefaultencoding()
linux下python的安装 安装步骤如下 1 准备编译环境 yum groupinstall 'Development Tools' yum install zlib-devel bzip2...&& make install 4 设置环境变量 echo 'export PATH=$PATH:/usr/local/python3/bin' >> ~/.bashrc 5 设置目录(这样做的目的是在系统任意目录敲入...python3调用的是python3.5的命令) mv /usr/bin/python /usr/local/python.bak rm -rf /usr/local/python2 ... ln -sv /usr/local/python2.6 /usr/bin/python2 ln -sv /usr/local/python3/bin/python3.5 /usr/...bin/python 6 修改yum脚本,使其指向旧版本的python,已避免yum无法运行 sed -i 's$#!
先说下概念和差异: 脚本字符编码:就是解释器解释脚本文件时使用的编码格式,可以通过 # -\*- coding: utf-8 -\*- 显式指定; 解释器字符编码:解释器内部逻辑过程中对 str 类型进行处理时使用的编码格式...Python2 中默认把脚步文件使用 ASCII 来处理(历史原因请 Google); Python2 中字符串除了 str 还有 Unicode,可以用 decode 和 encode 相互转换; Python3...Python2 中默认把脚步文件使用 ASCII 来处理」,但是脚步文件包含了中文,ascii 又没有覆盖中文,所以报错。...总结下结论: Python2 脚步文件尽量使用 gbk 格式存储;同理 Python3 脚步文件尽量使用 utf-8 格式存储; Python2 脚步如果带有中文字符时,请务必在脚本开头声明能支持中文的脚本文件编码...; Python2 中对同一个字符串的 encode 和 decode 编码格式请保持一致; 说明:本次所有测试脚本文件均保存为 utf-8 格式。
自动化测试过程中,输入文本、读取文件、解析网络请求、字符串断言、正则匹配这些步骤都是必不可少的。...从上面编码发展史的内容中我们可以看出,Unicode与其他编码方式的对应关系是这样的: ?...但实际操作过程中,情况比上图要复杂 源文件的编码 比如如下Python源文件,执行会报错 ? ?...dumps函数的encoding参数的默认值为“utf-8”,当待序列化的结构化数据中的字符串编码类型不是utf-8编码时,需显式指定encoding的值。 ? ?...loads函数的入参为str类型的json格式字符串,当字符串的编码不是utf-8时,需要手工指定字符串的编码方式。loads返回的结构化数据中,字符串均为unicode实例 ? ?
前言 在Python中,我们通常使用urllib中的urlencode方法将字典编码,用于提交数据给url等操作,但是在Python2和Python3中urllib模块中所提供的urlencode的包位置有些不同...对于Python2 Python2中提供了urllib和urllib2两个模块。...urlencode方法所在位置为: urllib.urlencode(values) # 其中values为所需要编码的数据,并且只能为字典 例如模拟登陆CSDN网站,示例程序如下 import...urllib2.Request(url,data) response = urllib2.urlopen(request) print response.read() 对于Python3 Python3中也有...urllib和urllib3两个库,其中urllib几乎是Python2中urllib和urllib2两个模块的集合,所以我们最常用的urllib模块,而urllib3则作为一个拓展模块使用。
BaseException +-- SystemExit +-- KeyboardInterrupt +-- GeneratorExit +-- Exc...
DOCTYPE html> 07_函数中的this 的引用变量 * 在函数中都可以直接使用this * this代表调用函数的当前对象 * 在定义函数时, this还没有确定, 只有在执行时才动态确定(绑定)的 2....如何确定this的值?...* test() * obj.test() * new test() * test.call(obj) 前置知识: * 本质上任何函数在执行时都是通过某个对象调用的 --> <script
如何在jupyter中同时使用python2和3?...由于我是通过anaconda来安装的Jupyter Notebook,所以首先需要解决Anaconda2(Python2)和Anaconda3(Python3)的共存。...只需要将Anaconda3的安装目录选在D:\Anaconda2\envs子目录下即可。...详细安装教程请看这篇博文:http://blog.csdn.net/infin1te/article/details/50445217 安装完成之后,在CMD里面直接输入python会启动Python2...这个时候在Jupyter Notebook中其实已经存在了python2和python3两个内核,但是否可用未测试。
学2还是3我想这是每一个初学者都会遇到的难题,我觉得作为一名新手直接上3。Python3是未来的大势所趋,2.7现在只是在维护,不会增加新的功能。...1.print这个可能是py2和py3最大的区别,很多人用惯py2的人很不习惯,为什么3一定要加上一个(),这是因为print从语句变为函数。...字符串也就是文本,这个问题一直在py2里面没有很好的处理。在py3里面彻底的解决了。Python3最重要的改动除了print,大概要算是对文本和二进制数据作了更为清晰的区分。...4.输入函数改变了。 ? 5.赋值变量,扩展的可迭代解包 ? 6.异常处理 ? ? ? 7.字典 ? 8.高阶函数 ? 9.range和xrange ? 10.关于类 ? 11.生成器yield ?...Py2和py3最大的区别在于print和字符串,其他的都是一些小的修改。但是虽然小的调整,我们可以仔细思考为啥要这样调整。
*图像来自慕课网课程 URL管理器 如图所示,URL管理器是负责管理要爬取网页的URL的。当有新的URL,就把新的URL添加到管理器中,在添加之前还有判断URL是否已经存在。...在获取时,先判断是否还有URL,如果有就提前URL并将它移动到已爬取的列表中。这样保证不添加新的重复的URL ?...*图像来自慕课网课程 网页下载器 从URL管理器中获取的URL,我们要把这些URL的网页数据下载下来,这是就要使用到了网页下载器,这说到下载的有本地文件或字符串,这是因为当我们爬取的是文件时,如图片,...当我们爬取的是网页中的内容数据时,这时就是字符串。 ?...获取新的URL可以添加到URL管理器中,获取有用的数据就将它保存。 ?