首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【python】个人经验:如何写出兼容py2与py3的代码

问题 Python2已经停止维护,但由于历史原因,我们不得不在接下来的几年中,习惯两种语言依然共存的状况。 如果能习惯性地写出同时兼容py2与py3的代码,就可以减少很多不必要的踩坑。...前言 博主研一时用py2,研二后改用py2。 现在工作了,每次都要在本地写适配py3的代码,放到只能适配py2的服务器上去跑。对于如何写出兼容py2与py3的代码,积累了一点踩坑心得。...中是精确除法;在py2中只有浮点除时才为精确除,否则为地板除。...(又称“内建函数”,包括reduce、filter、map等等)在py2下返回的是list,在py3下返回的却是一个函数对象。...文件路径直接在当前工作目录下时:py2和py3都可以通过如下方式来导入相同目录下的库文件:import util 文件路径不直接在当前工作目录下时:py3导入相同目录下的库文件就不能再那么写了,而是要改一下

73420
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    python2和python3的区别

    5、py2中有Unicode数据类型,py3中没有,字符串都是Unicode格式的str数据类型。6、py2中bytes可以是二进制,也可以是str,py3中bytes只是十六进制表示的二进制。...(直接运算会显示long型,因为2**31会先运算,是long型)8、用户输入不同,py3中只有input()输出都是str和py2中的raw_input()一样,而py2中也有input(),输入字符串要带引号...,数字输出相应的数字类型9、Py2以前没有布尔型,0表示False,用1表示True;Python3 把 True 和 False 定义成关键字,它们的值还是 1 和 0,可以和数字运算。...11、py2的除法中不是浮点数则只返回商,py3除法返回值正常。12、py3运行程序可以识别相同目录下普通文件夹中的模块,py2只能识别文件夹标识后的包中的模块。...仅py3中有类的mro函数方法,输出继承父类的顺序列表。

    93020

    python2和python3的区别总结

    中的unicode字符输出到文件或者传输到网络上,需要先把unicode字符转换为str类型,py2的encode方法就是编码unicode字符到指定字符类型,因为py2默认编码方式为unicode,所以当使用...encode方式时,传入的参数就是目标编码格式,比如utf-8或者gbk等,当py2把一个字符存入到文件的时候,首先会判断字符的类型,如果是str,则直接存入文件,如果是Unicode类型,则先要转换为...而decode是把str转换为unicode字符,刚说了py2的默认格式是unicode,所以decode的时候,需要传入的参数名字就是字符的现在的编码的编码方式,比如utf-8或者gbk,当传入的参数名字不是现在编码方式的时候...除法问题 在py2中两个整数除法的得到的是0,要得到浮点数,则除数或者被除数有一个是浮点数,而在py3中,整数相除可以得到浮点数。但是如果要在py3中整数相除也得到0的话,就要使用//,而不是/。...I/O方法,xreadlines() 在py2中,一个文件对象有xreadlines()方法,返回一个迭代器,每次只读取一行数据,可以使用for循环输出结果。在py3中删除了这个方法。

    1K40

    Python3与Python2的具体区别

    前言 有赞的数据库管控平台是基于Python 2(py2)开发的,目前已经升级到python3(py3) 版本,主程序基于python 3.6.x。写本文是梳理一下 两个版本之间的语法,函数等差异。...py3 与py2 大多数不兼容的地方主要是:移除二义性和错误修正。可以理解为py3 总体上更加严格和准确。...编码 py2 中的默认编码是ASCII 码,py3 默认编码是 Unicode(utf-8),带来的一个好处是我们不需要在文件头部写 # coding=utf-8 了。...py3 中如果没有使用b模式选项打开的文件,只允许从文件头开始计算相对位置,从文件尾计算时就会引发异常. py2 In [23]: fl= "/Users/yangyi/t" In [24]: f=open...,结果是浮点型 ;%表示取余,// 结果取整。

    85130

    c语言浮点数输出格式的控制,c语言输出格式控制「建议收藏」

    1.转换说明符 %a(%A) 浮点数、十六进制数字和p-(P-)记数法(C99) %c 字符 %d 有符号十进制整数 %f 浮点数(包括float和doulbe) %e(%E) 浮点数指数输出[e-(E...-)记数法] %g(%G) 浮点数不显无意义的零”0″ %i 有符号十进制整数(与%d相同) %u 无符号十进制整数 %o 八进制整数 e.g. 0123 %x(%X) 十六进制整数0f(0F) e.g...3.格式字符串(格式) [标志][输出最少宽度][.精度][长度]类型 “%-md” :左对齐,若m比实际少时,按实际输出。...e.g. “%3.1f” 输入3852.99 输出3853.0 长度:为h短整形量,l为长整形量 printf的格式控制的完整格式: % – 0 m.n l或h 格式字符 下面对组成格式说明的各项加以说明...用于说明输出的实型数的小数位数。为指定n时,隐含的精度为n=6位。 ⑤l或h:l对整型指long型,对实型指double型。h用于将整型的格式字符修正为short型。

    2.3K40

    浅谈Python内置对象类型——数字篇(附py2和py3的区别之一)

    一、常量 Python中的数字常量支持多种格式,我们常见的常量是整型和浮点型。...py2版本中的分数运算 ? py3版本中的分数运算 小伙伴是不是感觉到有点儿懵逼?...在py2中整数除法运算的结果仍然为整数,是取整,而不是四舍五入噢。当参与运算的数中有一个为浮点数的时候,Python会自动将另一个数字隐性的转换为浮点数,因此在第二个运算中得到的结果为浮点数。...在py3中,除法的意义就和我们平时见到的除法是一致的了,而不是取整。换句话说,除法的除数和被除数在py3中都先做了浮点数转换,然后相除,最终得到的商是浮点数。...希望小伙伴们都好好掌握,在分数运算部分尤其要注意掌握py2和py3版本中的不同,这个知识点在面试题中经常会碰到,其实这个部分也算是两个版本的区别之一。

    1.2K20

    浅谈Python内置对象类型——数字篇(附py2和py3的区别之一)

    一、常量         Python中的数字常量支持多种格式,我们常见的常量是整型和浮点型。...py2版本中的分数运算                         py3版本中的分数运算         小伙伴是不是感觉到有点儿懵逼?...在py2中整数除法运算的结果仍然为整数,是取整,而不是四舍五入噢。当参与运算的数中有一个为浮点数的时候,Python会自动将另一个数字隐性的转换为浮点数,因此在第二个运算中得到的结果为浮点数。...在py3中,除法的意义就和我们平时见到的除法是一致的了,而不是取整。换句话说,除法的除数和被除数在py3中都先做了浮点数转换,然后相除,最终得到的商是浮点数。         ...希望小伙伴们都好好掌握,在分数运算部分尤其要注意掌握py2和py3版本中的不同,这个知识点在面试题中经常会碰到,其实这个部分也算是两个版本的区别之一。

    1K30

    #PY小贴士# py2 和 py3 的差别到底有多大?

    (具体时间上有不同说法,1月1号、4月、8月……但这个差别意义不大了) 从我开始做 Python 编程教学的工作开始,就始终在解答读者一个问题:我到底学 py2 还是 py3?...虽然结论已经很明确,但我还是想客观地说一句:对于学习者来说,学 py2 还是 py3,真的没有太大差别。...之所以这会成为一个问题,主要原因在于: 在新手刚学习时就会接触到的输入输出 input 和 print 上,py3 就相较 py2 做了改动,以至于让很多没注意版本的学习者一上来就踩了大坑,进而以为两个版本有巨大差异...py3 的确不兼容 py2,而 Python 牵涉的第三方库又众多,这让很多程序员头疼,于是在网上大肆吐槽调侃版本间的问题,让不知内情的人望而生畏。...哪怕在停止更新 py2 的 2020 年,你照着一本 py2 的教程,安装上 2.7 的 Python,一样可以学会 Python 的使用。在之后转用 py3 进行开发,也只是分分钟的事情。

    51520

    C语言-整数与浮点数:内存存储的差异

    整数与浮点数在内存中的存储机制 在计算机科学中,整数和浮点数是我们经常处理的两种数据类型。它们在内存中的存储方式决定了它们可以表示的范围、精度以及如何进行数学运算。...整数在内存中的存储 整数在内存中的存储通常使用二进制补码形式。二进制补码是一种表示整数的方法,它使得加法和减法操作变得简单,因为这两种操作在二进制补码形式下可以共享相同的电路。...浮点数在内存中的存储 浮点数的存储要复杂得多,因为它们需要表示小数点和指数的变化。在计算机中,浮点数通常遵循IEEE 754标准,这是一种广泛接受的浮点数表示方法。...IEEE 754标准下的浮点数由三部分组成:符号位、指数位和尾数位。 符号位:和整数一样,用于表示浮点数的正负。 指数位:用于表示浮点数的大小。它实际上表示的是二进制小数点应该移动的位置。...尾数位:也称为尾数或有效数字,用于表示浮点数的精确值。这是小数点后的二进制表示。 IEEE 754标准定义了单精度(float)和双精度(double)两种浮点数格式。

    11010

    写py2、py3兼容的代码

    写py2、py3兼容的代码 用到一段时间python,之前也重点复习了一次python3。但工作中运行环境是python2.7,于是要求写出py2、py3都兼容的代码。...下面将涉及到的几点技巧列举出来以备忘。 print函数 py3中print语句没有了,取而代之的是print()函数。 Python 2.6与Python 2.7部分地支持这种形式的print语法。...,比如Java啊C啊差不多,整数相除的结果是一个整数,把小数部分完全忽略掉,浮点数除法会保留小数点的部分得到一个浮点数的结果。...这里倒没有异议了,本来就常见原来py2那种奇葩写法很奇怪,只使用py3的写法就可以了。...标准库及函数名称变更 py3重新组织了一些标准库及一些函数,为了保证在py2、py3下代码都工作正常,这里使用six模块提供的兼容功能。

    2.4K80

    python 小知识1

    版本与python3.6版本         环境变量的设置 三、编码   1.初识编码: ASCII 只能编写英文,只能用1字节=8位来表示,共有2**8=256种 Unicode ——万国码...utf-8  是Unicode的压缩,把多余的0省掉,最少使用1字节=8位,占位是8的倍数。...3.py2&py3的区别: py2: 默认解释器编码是ASCII 指定py2使用utf-8需要在代码头部加入一行代码:#--coding:utf-8-- py3:默认解释器编码是utf-8...四、输出     print('输出内容')     py2与py3的区别:py2——print+空格+'你好'                                   py3——print...需要使用单引号、双引号或三引号   2.数字类型或整型   3.布尔类型:true/false    """   """   3引号支持换行 六、变量      1.创建一个变量,给变量赋一个值,变量与值用

    34130

    python3菜鸟教程笔记

    python2和python3 的一些差异: * print函数变了,python3中的print函数必须要加括号 * xrange函数合并到了range中,2到5的序列可以直接用range(2, 5)...表示 * py2中输入使用raw_input()函数,py3中使用input()函数 * py2里中文编码易出错,从csv文件中读取的文本和hdfs中以json格式存储的中文文本有时匹配不上;据说在py3...beijing’] [‘北京’, ‘beijing’] 两个环境都使用了utf-8编码,足见python3对中文编码的支持更好 * py2中的‘/’符号默认返回的是整数结果, py3中的’/’符号返回的是有理数结果...4.列表是有序的对象集合,字典是无序的对象集合;在一个字典中,键(key)必须是唯一的。 5. 数字用 ** 来表示幂次操作。 5 ** 2 #5的平方 笔记二 1....定义类的时候常常看见’self’关键字,这个关键字代表的是类的实例,代表当前对象的地址。

    61920

    python2 和 python3 常见差异及兼容方式梳理

    由于经常会遇到一些需要进行兼容的问题,因此觉得需要一篇博客来记录一下。 说明:本篇文章的 py2 特指 python 2.7+ 版本,py3 特指 python 3.5+ 及以上版本。...判断 python 版本的方法 被改名模块 print base64 判断 python 版本的方法 既然是为了让代码兼容 py2 和 py3,那么很多时候必须先知道当前执行脚本的 python 版本是什么...\n") raise 2、通过 sys.version_info 获取版信息 import sys PY2 = sys.version_info[0] == 2 PY3 = sys.version_info...world') #py3 >>> print("hello", "world") hello world 这样就很明显了,python2 是把括号的内容当做一个元祖输出的。...解决二者兼容的方法是在代码中引入一个模块,这样两个版本都可以使用带有括号的 print,并且输出也是一致的。

    56620
    领券