python2.x和3.x中的输出语句有着明显不同

2.x中的print不是个函数,输出格式如下

  1. Python 2.7.12+ (default, Aug 4 2016, 20:04:34)
  2. [GCC 6.1.1 20160724] on linux2
  3. Type "help", "copyright", "credits" or "license" for more information.
  4. >>> print "There is only %d %s in the sky."%(1,'sun')
  5. There is only 1 sun in the sky.

3.x中的print成了函数,输出格式如下

  1. Python 3.5.2+ (default, Aug 5 2016, 08:07:14)
  2. [GCC 6.1.1 20160724] on linux
  3. Type "help", "copyright", "credits" or "license" for more information.
  4. >>> print("There is only %d %s in the sky."%(1,'sun'))
  5. There is only 1 sun in the sky.

为什么要做出这样的变化,主要原因有以下几点:

1.print不是函数,不能使用help(),对使用者不方便。

python2中help(print)会报错。

  1. >>> help(print)
  2. File "<stdin>", line 1
  3. help(print)
  4. ^
  5. SyntaxError: invalid syntax

python3中,可以使用help(print),清楚的看到print的参数。

  1. Help on built-in function print in module builtins:
  2.  
  3. print(...)
  4. print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
  5.  
  6. Prints the values to a stream, or to sys.stdout by default.
  7. Optional keyword arguments:
  8. file: a file-like object (stream); defaults to the current sys.stdout.
  9. sep: string inserted between values, default a space.
  10. end: string appended after the last value, default a newline.
  11. flush: whether to forcibly flush the stream.
  12. (END)

2.从上面的help(print)中我们也可以看到在print()中的两个重要参数,sep和end。这两个参数使print()相比print多了两个新功能,自定义间隔符(默认空格)和结束符(默认回车)。

  1. >>> print("","","")
  2. 123 456 789
  3. >>> print("","","",sep='-')
  4. 123-456-789
  1. >>> x=1024
  2. >>> print(t)
  3. 256
  4. >>> print(t,end=" end")
  5. 256 end>>>
  6. >>> print(t,end=" end\n")
  7. 256 end

3.print()重定向输出文件更加方便。

2.x需要print>>重定向输出,感觉代码很混乱。

  1. >>> out=open("test.txt","w")
  2. >>> print>>out,""

3.x中输出文件成了一个参数,使用更方便。

  1. >>> out=open("test.txt","w")
  2. >>> print("",file=out)

4.python2.x中print语句的格式化输出源自于C语言的格式化输出,这种语法对于C这种静态语言比较适用,但是对于拥有很多先进数据结构的python来说就有点力不从心了。python的元组,列表,字典,集合等不适合用这种结构表示,这些数据结构大多元素用下标表示,在这种结构中写出来很混乱。python3.x的print()函数提供了有点类似C#(不知道这么说对不对)中的格式化输出函数format()。另外print()也兼容原来的格式化输出方式。

  1. >>> print("%s is %s."%('Aoko','good'))
  2. Aoko is good.

format()让输出格式更清晰。

  1. >>> print("{0} is {1}.".format('Aoko','good'))
  2. Aoko is good.

format()支持数组下标,使python中的一些数据结构输出更加方便。

  1. >>> name=["Kaito",5]
  2. >>> print("{0[0]} has {0[1]} dollars.".format(name))
  3. Kaito has 5 dollars.

format()下的格式限定符,和原来的差不多。

  1. >>> x=5.6
  2. >>> print("{0:4f}".format(x))
  3. 5.600000

由此看来,print()相比print还是有很大进步的。说句题外话,我希望更多的python用户多花点时间实现代码对新版本的兼容,而不是花时间用在争论“python2和python3谁更好”的口水战上。python作为一种免费语言给我们带来了很多方便,我们不应该吝惜自己那么一点时间。花一点时间让python发展下去,变得更强。

【学习笔记】python2的print和python3的print()的更多相关文章

  1. 【学习笔记】第七章 python3核心技术与实践--输入与输出

    [第六章]思考题答案,仅供参考: # coding:utf-8import time#方法一start_time = time.perf_counter()s = ''for n in range(0 ...

  2. 学习笔记之X分钟速成Python3

    X分钟速成Python3 https://mp.weixin.qq.com/s/QT5sR0nUKgJYsYgrj2SleA https://learnxinyminutes.com/docs/zh- ...

  3. 【学习笔记】第五章 python3核心技术与实践--字典和集合

    [第四章]思考题的答案,仅供参考: []比list()更快,因为调用了list函数有一定的时间,而[]却没有. 前面我们学习了 Python 中的列表和元组,了解了他们的基本操作和性能比较.这节章,我 ...

  4. python3.5学习笔记:linux6.4 安装python3 pip setuptools

    前言: python3应该是python的趋势所在,当然目前争议也比较大,这篇随笔的主要目的是记录在linux6.4下搭建python3环境的过程 以及碰到的问题和解决过程. 另外,如果本机安装了py ...

  5. Python学习笔记之Centos6.9安装Python3.6

    0x00 注意 如果本机安装了python2,尽量不要管他,使用python3运行python脚本就好,因为可能有程序依赖目前的python2环境, 比如yum!!!!! 不要动现有的python2环 ...

  6. 【学习笔记】第四章 Python3核心技术与实践--列表与元组

    前面的课程,我们了解了Python 语言的学习方法,并且带你了解了 Python 必知的常用工具——Jupyter.接下来我们正式学习 Python 的具体知识. 对于每一门编程语言来说,数据结构都是 ...

  7. (学习笔记)PHP的输出echo和print

    echo 和 print 之间的差异: echo - 能够输出一个以上的字符串 print - 只能输出一个字符串,并始终返回 1 echo语句 echo 或 echo()均可. 输出换行 echo ...

  8. 【学习笔记】第三章 python3核心技术与实践--Jupyter Notebook

    可能你已经知道,Python 在 14 年后的“崛起”,得益于机器学习和数学统计应用的兴起.那为什么 Python 如此适合数学统计和机器学习呢?作为“老司机”的我可以肯定地告诉你,Jupyter N ...

  9. Python3学习笔记01-环境安装和运行环境

    最近在学习Python3,想写一些自己的学习笔记.方便自己以后看,主要学习的资料来自菜鸟教程的Python3教程和廖雪峰官方网站的Python教程. 1.下载 1)打开https://www.pyth ...

随机推荐

  1. MVC开发中的常见错误-01未能加载文件或程序集“EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”或它的某一个依赖项。

    错误信息:未能加载文件或程序集“EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”或 ...

  2. pycharm常用设置和快捷键大全

    pycharm常用快捷键 1.编辑(Editing) Ctrl + Space    基本的代码完成(类.方法.属性)Ctrl + Alt + Space  快速导入任意类Ctrl + Shift + ...

  3. cnetos 7 mariadb 集群报错分析解答

    1.故障1:通过查看/var/log/message 发现报错 2017-04-14 14:44:10 139845276428544 [ERROR] WSREP: It may not be saf ...

  4. 解决OS睡眠功能中,移动鼠标就会唤醒

    设备管理器,在相应项目上右键属性.

  5. .NET成年了,然后呢?

    作者|Lex Li 编辑|郭蕾 这可能是唯一一篇系统回顾 .NET 发展的文章..NET 的成年礼到了,你会送它什么? 2014 年 11 月 12 日,美国纽约曼哈顿,多云,气温适宜.微软公司执行副 ...

  6. sed 详解【转】

    原文地址:http://www.cnblogs.com/sparkdev/archive/2017/07/10/7138073.html 基本命令格式 sed [常用选项] 命令文本 输入 常用选项 ...

  7. JDK1.7 Update14 HotSpot虚拟机GC收集器

    在测试服务器上使用如下命令可以查看当前使用的 GC收集器,当然不止这一个命令可以看到,还有其他一些方式 第三列”=”表示第四列是参数的默认值,而”:=” 表明了参数被用户或者JVM赋值了 [csii@ ...

  8. table无法控制宽度

    table-layout:fixed

  9. Nginx配置多个基于域名的虚拟主机+实验环境搭建+测试

    标签:Linux 域名 Nginx 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://xpleaf.blog.51cto.com/9 ...

  10. ftp弱密码案例