v3.0 以前,print一直作为语法结构存在,他是python语法的一部分;这个理解起来可能有点蹩脚,但的确是这样。
print 一直被定以为一个statement,也就是说,他跟return/try/while等等语法结构没有概念上的区别,都必须在编译阶段解析并产生对应的op流。

statement 是由 expression组成的,expression可以包含expression,但不能包含statement。
所以,如下代码产生了语法错误:
====================
>>> # python 2.7
>>> a = print 1
  File "<stdin>", line 1
    a = print 1
            ^
SyntaxError: invalid syntax
====================

v3.0 以后,print statement被取消,定义了一个内建函数print()。
现在,print的函数形态会令我们比较舒服,它看起来更像一个用户于程序交互的功能函数,而不是怪异的语法结构。
虽然,print()函数不返回任何东西,虽然试图获取print()的返回值看起来很怪异,但它可以说明,print(1)是一个函数调用的expression,而不是print statement。
====================
>>> # python 3.2
>>> a = print(1)
1
>>> type(a)
<class 'NoneType'>
====================
并且,显然的,a得到了一个返回值,返回值是空。

这不同于我们试图访问一个未初始化的变量,如下面的例子。
====================
>>> # python 3.2
>>> type(b)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'b' is not defined
====================

结论:
在v3.x里,以函数形态存在的print()必须用括号包裹参数列才能编译通过,它的使用可以出现在任何函数可以出现的地方,需要考虑的只有返回值是否有意义。
在v2.x里,print作为statement,可以使用带括号也可以不带括号使用,但决不能存在于expression里。

转载于:https://www.cnblogs.com/lanqiu5ge/p/9472243.html

【Python 2 到 3 系列】 print 是函数相关推荐

  1. python items函数用法,Python中dictionary items()系列函数的用法实例

    本文实例讲述了Python中dictionary items()系列函数的用法,对Python程序设计有很好的参考借鉴价值.具体分析如下: 先来看一个示例: import html # availab ...

  2. 简单介绍python的input,print,eval函数

    这篇文章主要为大家概述了python的input,print,eval函数,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助 input()函数 input()函数可以通过控制台 ...

  3. 文科生学python系列_文科生学 Python 系列 3:函数

    文科生学Python系列3:函数​www.jianshu.com 还是第二课的内容 函数是一段可以重复使用的代码,往往是为了解决某个特定的人物.在 Python 中有两种函数:内置函数和自定义函数. ...

  4. python一行输出多个数据_如何在Python中让两个print()函数的输出打印在一行内?

    1.两个连续的print()函数为什么在输出时内容会分行显示? 解:print()中有两个默认参数sep和end,其中sep是代替分隔符,end是代替末尾的换行符,默认使用','代替空格,且默认末尾加 ...

  5. Python中的标准库函数(内置函数)print()输出(打印出)字符串的常见用法

    这篇博文用于记录下Python中的标准库函数print()的常见用法,随着时间的推移,可能会有更新. print 在 Python3.x 是一个函数,但在 Python2.x 版本不是一个函数,只是一 ...

  6. Python之Pandas:pandas.DataFrame.to_csv函数的简介、具体案例、使用方法详细攻略

    Python之Pandas:pandas.DataFrame.to_csv函数的简介.具体案例.使用方法详细攻略 目录 pandas.DataFrame.to_csv函数的简介 pandas.to_c ...

  7. python一些常用函数_【python】常用的一些内置函数

    1.cmp cmp(A,B)函数,比较A,B的大小,如果A大于B,返回1,A小于B返回-1,A等于B返回0 print cmp(12,33) >>>-1 print cmp(&quo ...

  8. map 长度_Python实用教程系列——高阶函数Map、Filter、Reduce

    点击上方蓝色文字关注我们吧 有你想要的精彩 作者 | 那个百分十先生出品 | Python知识学堂 上次推文我们介绍了python中的<Logging日志模块>的相关知识,这次推文我们将学 ...

  9. django 按钮的样式_【实战演练】Python+Django网站开发系列11-成绩查询与成绩录入...

    #本文欢迎转载,转载请注明出处和作者 终于做到最后一步了,选课.删除.已选展示.修改密码等功能都已经完成,剩下查询已选课程的成绩(学生界面)与成绩录入(老师界面).其中成绩查询的页面与之前做过的基本上 ...

最新文章

  1. 2021年大数据Spark(二十二):内核原理
  2. 打开网页时出现DA AddrBar icon的解决方法
  3. python回归分析预测模型_Python与线性回归模型预测房价
  4. 求任意大小矩阵的转置矩阵
  5. BZOJ1079 [SCOI2008]着色方案 记忆化搜索
  6. 深圳多管齐下破解“融资难”
  7. Cake -- ACM解决方法
  8. RHEL 5服务篇—常用网络配置命令
  9. dubbo与springmvc的简单使用
  10. 屠呦呦凭什么获诺奖?
  11. jq ajax异步上传文件,jQuery插件ajaxFileUpload异步上传文件
  12. linux下udp多线程编程
  13. 代理模式——结构型模式(7)
  14. Hyperledger Composer 客户端连接Fabric网络的配置文件解析
  15. 【机器学习】偏差-方差分解
  16. [图形学]ASTC纹理压缩格式
  17. css 背景重复渐变_CSS3重复渐变[CSS3提示]
  18. 约束满足问题(Constraint Satisfaction Problems——CSPs):回溯操作,向前检验,约束传播,局部搜索
  19. 基于FPGA的数字混频器设计与仿真
  20. 使用Navicat 设定 sql 触发器

热门文章

  1. 氮化镓充电器哪家做得好_氮化镓充电头推荐、100元能买到那些大品牌氮化镓充电器?...
  2. STM32 进入Stop模式后电流还是很大怎么办?
  3. php好玩的源码_github上比较有趣的PHP开源项目
  4. python windows和linux路径_python复制文件,路径不存在问题(Windows和linux路径分隔符不统一)...
  5. matlab FAQ
  6. linuxpython23同时_linux上安装python3同时保留python2
  7. gtk 控件内存回收_咱们从头到尾说一次 Java 垃圾回收
  8. python函数调用键盘热键_神技能:Python控制键盘鼠标
  9. Java锁 优先级_详解Java的线程的优先级以及死锁
  10. server之后安装ssms失败 安装sql_关于SQL安装失败的解决方法