如果你是刚接触 Python 的初学者,那你可能是直接学习 Python 3.x 版本。对于 Python 2.x 的版本是不会有所接触。官方也宣布在 2020 停止对 Python 2.x 的维护。...我也建议初学者直接去学 Python 3.x 版本。但我们还是要去了解下 Python 3.x 与 Python 2.x 之间都有哪些改变,通过对比能让你对 Python 有更加深刻的理解。...并且在很多面试过程中,面试官都会问:Python 2.x 与 Python 3.x 的区别。今天就给大家列举 Python 3.0 主要改变的几个方面。...floor 操作,在 python 2.x 和 python 3.x 中是一致的。...8 去掉了 repr 表达式 `` Python 2.x 中反引号 `` 相当于 repr 函数的作用 Python 3.x 中去掉了 `` 这种写法,只允许使用 repr 函数。
想必在学习Python时会面临选择Python2.X或者是Python3.X的问题;现在我就来教你如何在不同版本之间切换自如,当然目前还是偏向于3.X版本,毕竟是未来的趋势。...我在电脑上不同位置下载安装了不同版本 的Python,当我在学习时,不管是需要哪一个版本运行都无所谓,相应的快速切换版本即可。 在环境变量里面更改设置,如: ?...我的安装位置是(配置的path中路径也如下):注意分号; D:\Program Files\Python36;D:\Program Files\Python36\Scripts; C:\Python27...; C:\Python27\Scripts; 两个版本随意切换都可以 查看是否成功如下: 对应Python 2.7版本 ?...对应Python 3.6版本 ? ----
Python 3 中闪亮的 大家好,又到了科普时间,咳咳。...距离 Python 3 发布已经有一段时间了,主流发行版都已经带了 Python 3 的软件包,甚至 Arch 等发行版还将其设为了默认的 Python 版本。...不过在 Python 3 中,默认就是万能的 Unicode 码了,所以字符串前面不用加字母 u 也可以写 Unicode 了,当然这不是重点,重点是不会有各种 ASCII 和 Unicode 转换和混用带来的错误了...另外, Python 3 中增加了一种 bytes 对象(b‘\xb6\xfe\xbd\xf8\xd6\xc6\xca\xfd\xbe\xdd’),专门用来表示编码后的(二进制)数据,所以现在对字 符串的编码就是从...'普通青年', '小亮': '二逼青年'} >>> 还有集合解析: >>> {小吃 for 小吃 in ('豆浆', '油条', '包纸')} {'油条', '包纸', '豆浆'} >>> 有序字典与
本文提到的2.X版本指2.6以上的版本,3.X版本指3.1以上的版本。 ...2.X版本中string类型和str、unicode类型大量方法是重复的,所以3.X版本不提倡使用string模块中与str重复的方法。...上面讨论的例子用的字符串是ASCII字符组成的,如果是字节类型,2.X版本中操作是一样的,3.X中调用bytes或bytearray的函数;若是unicode类型的,2.X需要用unicode的translate...12行的功能就是把s中的英文标点符号都删除。 Python code ? ...原因是这样的:2.x系列string模块和内置的str类型有很多方法是重复的,所以3.x系列时string模块把这些重复的方法都去掉了,只保留一些独有的方法和常量来有区别与str类型,所以调用string
Linux下默认系统自带Python2.X的版本,这个版本被系统很多程序所依赖,所以不建议删除,如果使用最新的Python3那么我们知道编译安装源码包和系统默认包之间是没有任何影响的,所以可以安装...1、下载Linux平台的Python3.x的安装包(本文测试安装下载的是Python 3.7版本) [linuxidc@localhost Linux公社 www.linuxidc.com].../pip3 /usr/bin/pip 如何利用pip将python模块安装到指定的python版本中 问题 如电脑上同时装了python2(2.7)和python3...(3.7),当使用pip安装时默认应安装到python2中,pip3安装时应安装到python3中,但奇怪的是使用pip安装时每次都定位到python3中,不知是啥原因,也不知如何将其重定向到python2...中,索性手动指定pip到python2中 查看pip版本 [root@localhost ipython]# pip -V pip 19.0.3 from /usr
在前文《python笔记之3.x与2.x的使用区别》谈及了不同版本的区别问题。长远看软件新版本肯定会取代低版本的,除非你有成熟的老版本代码必须考虑兼容性问题,一般还是推荐新手学习新版本。...最近学习python,主要使用3.3版本,但看代码和书籍时,碰到多是2.x代码,感觉问题多多,尤其是处理中文的时候。我在win下主要使用py3自带的idle为编辑器。...', , 7) >>> 这是print语句与print函数输出不一致的一个例子。...简言之,在python 2.7的代码中,添加一句“from __future__ import print_function, division”,就可以确保低版本代码尽量兼容于python 3.3的代码... 7 >>> 这才是我所期望的效果,也解决了print语句与print函数输出不一致的问题。
一、目的 在这篇文章中,我们将讨论Hadoop 2.x与Hadoop 3.x之间的比较。...二、Hadoop 2.x与Hadoop 3.x比较 本节将讲述Hadoop 2.x与Hadoop 3.x之间的22个差异。...2.5存储Scheme Hadoop 2.x - 使用3X副本Scheme Hadoop 3.x - 支持HDFS中的擦除编码。...2.13MR API兼容性 Hadoop 2.x - 与Hadoop 1.x程序兼容的MR API,可在Hadoop 2.X上执行 Hadoop 3.x - 此处,MR API与运行Hadoop 1.x...三、结论 正如我们已经讨论了Hadoop 2.x与Hadoop 3.x之间的22个重要差异,现在我们可以看到Hadoop 2和Hadoop 3哪个更好。
request.method # 请求方法 GET POST request.GET # get 请求参数 request.POST # post 表单参数 request.body #...post body参数 request.FILES # 文件上传 # 响应三剑客 1....字符串 3. redirect # 跳转 # json json.dumps json.loads flask make_response() # 请求方法 GET POST request.args...# get 请求参数 request.form # form 表单参数 request.filse # 文件长传 request.data # post body里的参数 make_response
编写兼容Python2.x与3.x代码 当我们正处于Python 2.x到Python 3.x的过渡期时,你可能想过是否可以在不修改任何代码的前提下能同时运行在Python 2和3中。...print vs print() 如果你想的和我一样,你或许会说print语句,这是个很好的着手点,先简单展示一下,print在2.x中是一条语句,而在3.x中它是一个关键字或者是保留字。...为什么我们不用sys.stdout.write()呢,因为我们需要添加一个NEWLINE字符在字符串的结尾来兼容这种行为(python2.x中write方法不会换行): # Python 2.x & 3...n') Import your way to a solution 一般情况情况下,import时没什么烦恼,只要正确的导入就行,但在下面代码中,我们想导入urlopen()函数,在Python2中,他同时存在与...urllib2和urllib2中(我们使用后者),在Python3中,他被集成到了urllib.request中,而你的方案是要既能在2.x和3.x中正常工作: try: from urllib2 import
request就是将请求文本封装而成的对象,所以通过request能获得请求文本中的所有内容,请求头、请求体、请求行 。 ?...2.3、请求体(请求正文) 1)与表单获取相关的方法 方法: String getParameter(name) 根据表单中name属性的名,获取value属性的值方法 ...二是:返回到源组件的服务方法中,继续执行后续代码块。 特点: 一是:源组件与被包含的目标组件的输出数据都会被添加到响应结果中。 ...特点:浏览器中url不会改变,也就是浏览器不知道服务器做了什么,是服务器帮我们跳转页面的,并且在转发后的页面,能够继续使用原先的request,因为是原先的request,所以request域中的属性都可以继续获取到...4)与编码相关的方法 //解决post方式编码 request.setCharacterEncoding("UTF-8"); //告诉服务器客户端什么编码,只能处理post请求方式
最近在极客学院学习爬虫,老师用的是2.x版本,而我电脑里的版本是3.x,于是在网页上查找在输出中文时如何正确输出。...我原以为2.x 3.x在很多语法上没什么区别,在解码decode上应该也差不多,没想到竟然发现,很多博客提到2.x提出的解决方案 python 2.x解码 import sys reload...(sys) sys.setdefaultencoding(‘utf-8’) 在3.x中reload在imp包内,并且setdefaultencoding这个属性并不存在,因为3.x更先进了,...文章说python 3.x不用那么费心去编码,所以在解码上多做一步。 于是,如果想读取本地文件。...需要这样: python 3.x读取文件 # -- coding: utf-8 -- f = open(r’…\text.txt’, ‘rb’) # rb是读
爬虫里面,我们不可避免的要用urllib中的urlopen()和requests.get()方法去请求或获取一个网页的内容,这里面的区别在于urlopen打开URL网址,url参数可以是一个字符串url...或者是一个Request对象,返回的是http.client.HTTPResponse对象.http.client.HTTPResponse对象大概包括read()、readinto()、getheader... = request.Request(url) response1 = request.urlopen(req) html1 = etree.HTML(response1.read()) print("...其中返回的网页部分会存在.content和.text两个对象中。...两者区别在于,content中间存的是字节码,而text中存的是Beautifulsoup根据猜测的编码方式将content内容编码成字符串。
下面将涉及到的几点技巧列举出来以备忘。 print函数 py3中print语句没有了,取而代之的是print()函数。 Python 2.6与Python 2.7部分地支持这种形式的print语法。...在python 3.x中/除法不再这么做了,对于整数之间的相除,结果也会是浮点数。...而对于//除法,这种除法叫做floor除法,会对除法的结果自动进行一个floor操作,在python 2.x和python 3.x中是一致的。...Python 2.6已经支持这两种语法。 在Python 3.x中,表示八进制字面量的方式只有一种,就是0o1000。 很简单,只使用py3支持的写法。...不等运算符 Python 2.x中不等于有两种写法 != 和 。 Python 3.x中去掉了, 只有!=一种写法,还好,我从来没有使用的习惯。
range()是Python开发中非常常用的一个内置函数,语法格式为range([start,] end [, step] ),有range(stop)、range(start, stop)和range...该函数返回具有惰性求值特点的range对象,其中包含左闭右开区间[start,end)内以step为步长的整数。参数start默认为0,step默认为1。...in range(4): #循环4次 print(3, end=' ') 3 3 3 3 当然,也可以使用range()函数来控制数值范围,例如下面的程序片段可以用来输出200以内能被17整除的最大正整数
漏洞原理 Python 2.x版本至2.7.16版本中的urllib2和Python 3.x版本至3.7.2版本中的urllib存在注入漏洞。...该漏洞源于用户输入构造命令、数据结构或记录的操作过程中,网络系统或产品缺乏对用户输入数据的正确验证,未过滤或未正确过滤掉其中的特殊元素,导致系统或产品产生解析或解释方式错误。...影响版本 Python 2.x版本至2.7.16版本中的urllib2 Python 3.x版本至3.7.2版本中的urllib 漏洞复现 正常请求 import urllib.request host...='127.0.0.1' url=f'http://{host}/' resp=urllib.request.urlopen(url) print(resp.read()) 抓包 GET / HTTP/...: close 漏洞请求 import urllib.request host='127.0.0.1?
同样的还有 exec语句,已经改为exec()函数 例如: 2.X: print "The answer is", 2*2 3.X: print("The answer is"...# 输出新行 2.X: print >>sys.stderr, "fatal error" 3.X: print("fatal error", file=sys.stderr) ...2.X的方式如下: >>> 0666 438 >>> oct(438) '0666' 3.X这样: >>> 0666 SyntaxError...(16) Python引入很多新的特性, python 2.7.x需要继承object类才可以使用, 在python 2.7.x的文档中, 有标注:如: Note xxx() only works for...则需要继承object类才可以使用, 否则无效;在python 3.x中, 则隐式(implicit)继承object类, 即新型式的类(new-style class), 则不需要继承object类
本篇文章就来跟大家分享一下,我在升级过程中踩到的一些坑,以及 2.x 与 3.x 中引擎最基本的一些接口的变化。...ts 组件属性设置完后,将 js 版的组件移除,进行测试。这样操作,可以最大程度保证项目与之前逻辑一致,不容易出问题。...而在 3.x 中Node.zIndex接口已被废弃,需要使用Node.setSiblingIndex() 方法,与 2.x 是相反的,数值最小的在最底层。...winSize 2.x 中还有一个高频接口 cc.winSize 在 3.x 中也不存在了,对应的API为view.getContentSize() 获取窗口设计分辨率大小。...; 在 3.x 编辑器中使用 2.x 项目导入功能(注意要使用插件哦)将 2.x 升级到 3.x,这一步主要解决了 UI 重做的问题; 修改 3.x 中不兼容 2.x 的相关接口,基本上是一对一翻译,注意
在Python 3.x中,reduce()不再是内置函数,而是移到了标准库functools中,需要先导入再使用,其官方解释如图所示: ?...从官方文档可知,该函数用法要点如下: 1)把一个双参数函数以累积的方式从左向右依次作用到序列中的元素上,最终得到单个值。...在函数function的两个参数中,左边的参数x是被累积的值,而右边的参数y是依次从序列中获取的值。...这也是最常见的用法,在拙作《Python可以这样学》和《Python程序设计开发宝典》中都使用了下图进行了演示,配套PPT有这样一页: ?...3)如果没有提供可选参数initializer,并且序列中只包含一个元素,则直接返回序列中的第一个元素。 完整用法演示: ?
在python3中我们使用request模块访问一个网页,可以选择对文件的读写或者urllib.request.urlretrieve()方法将我们浏览的页面保存到本地。
为了照顾现有程式,Python 2.6 作为一个过渡版本,基本使用了 Python 2.x 的语法和库,同时考虑了向 Python 3.0 的迁移,允许使用部分 Python 3.0 的语法与函数。...在 Python 3.x 中 / 除法不再这么做了,对于整数之间的相除,结果也会是浮点数。...操作,在 Python 2.x 和 Python 3.x 中是一致的。...在 2.x 时代,异常在代码中除了表示程序错误,还经常做一些普通控制结构应该做的事情,在 3.x 中可以看出,设计者让异常变的更加专一,只有在错误发生的情况才能去用异常捕获语句来处理。...=一种写法,还好,我从来没有使用的习惯----去掉了repr表达式``Python 2.x 中反引号``相当于repr函数的作用Python 3.x 中去掉了``这种写法,只允许使用repr函数,这样做的目的是为了使代码看上去更清晰么
领取专属 10元无门槛券
手把手带您无忧上云