Python2与Python3差异之print详解

本文探讨了Python2与Python3在print功能上的显著差异,Python2中的print是语句,而在Python3中它变成了一个函数。文章通过实例展示了如何在3.x版本中正确使用print,并解释了sep、end、file和flush等参数的作用。同时,提到了Python3统一使用Unicode字符串解决2.x时代的编码问题,并给出了编辑器中批量替换以简化迁移过程的建议。

时代在发展,技术在进步。没有什么是停止不前的!2019年已经接近尾声,Python2停止更新的时间越来越近。其中比较流行的如 NumPy、Requests 和 TensorFlow 等承诺到 2020 年将停止支持2.x。尽管迁移过程也会花许多时间与精力,但是转Python3是早晚都要面对的。最近在迁移自己的代码到Python3,对于迁移的过程中遇到的情况进行总结。

首先我们来说一下常用的print。
最明显的区别就在于,我们在2.x版本中的print "hello world" ,在3.x版本中会报错。必须要以print("hello world")这样的格式。为什么会发生这样的变化呢?下面就让我们来看一下~

主要的变化就在于2.x中print是一个语句,我们可以讲要输出的内容直接放到print关键字后面即可。而3.x版本里,print()是一个函数,需要将输出的内容作为参数传递给print函数。
这里我们可以通过help函数来测试下。昨边终端的是2.7版本,右边的为3.7版本
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qhwHdlzi-1583404101221)(file:///Users/glacier/Documents/Gridea/post-images/1577370604020.png)]

我们可以看到,2.x版本中直接报语法错误,3.x版本中显示来函数的帮助信息。
我们来看一下3.x中的函数说明:

print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file:  a file-like object (stream); defaults to the current sys.stdout.
    sep:   string inserted between val
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值