python语言print_print从语句改成函数(Python3.0)

自Python3.0起,Python中的print关键字被移除,想要便捷地打印字符串,可以使用print()函数。

虽然Python2.7支持了print()函数,但是却没有移除print关键字,因此直接type(print)是会报错的。

In [1]: type(print)

File "", line 1

type(print)

^

SyntaxError: invalid syntax

print关键字和函数的使用对比

打印一个对象

关键字版本:

print x

函数版本:

print(x)

打印多个对象

关键字版本:

print x, y, z

函数版本:

print(x, y, z)

设置重定向

关键字版本:

print >> sys.stderr, "xxx"

with open("test.log", "w") as f:

print >> f, "test line"

函数版本:

print(x, file=sys.stderr)

with open("test.log", "w") as f:

print("test line", file=f)

设置分隔符

关键字版本:

print x, y # 分隔符只能是单个空格

函数版本:

print(x, y, step=",") # 通过step设置想要的分隔符,默认仍然是单个空格

设置结束符

关键字版本:

print x

print x, # 结束符只能是单个空格或者换行符

函数版本:

print(x, end="\n") #通过end设置想要的结束符

设置刷新输出流

关键字版本:

print x # 因为只能以换行符结束,所以默认每次执行print语句都刷新输出流

函数版本:

print(x, flush=False) #通过flush设置是否刷新输出流,一旦输出流中包含换行符就马上刷新输出流。需要注意默认的结束符是换行符,所以实际上默认也是直接刷新输出流

利用print函数实现一个命令行动画

print_load.py

import time

def load():

for i in range(1, 101):

print('{0:>3d}% '.format(i)+'#'*i+'-'*(100-i), end='', flush=True)

print('\x08'*106, end='') # 这是显示文本式动画的诀窍所在:使用退格符(或者\r)把光标移回来

time.sleep(0.1)

print(' ' * 106 + '\x08' * 106, end='') # 使用空格清除状态消息,把光标移回开头

if __name__ == '__main__':

load()

运行命令python3 print_load.py将会看到不断加载进度的命令行动画

print函数替换关键字的原因

这一切可以在2006年被提出的PEP3105中找到。

打印功能是唯一一个使用关键字实现的应用程序级别的功能。在Python的世界里,关键字通常是功能实现的最后的手段。

使用print()可以实现更复杂的打印输出格式(虽然format函数也提供格式化功能)。并且重定向文件时表示得更清晰易懂。

相比关键字,函数的迭代更加方便,兼容性更佳。

print关键字的分隔符不能变换,这点极其不便。

print()以函数的形式呈现,是一个概念上的巨大飞跃。这意味着我们可以轻易联想到,将字符串输出到sys.stdout或其他文件来理解它,工作流程类似于文件读写。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值