• 技术文章 >Python技术 >Python基础教程

    python3与2中print有什么区别?

    流芳流芳2020-07-11 14:03:49转载2645

    区别:Python2中的print是一个关键字,而Python3里的print是一个函数。关键字用法“print 要打印的内容”;函数用法“print(要打印的内容)”。

    总地来说, Python2.7的print不是一个function,而Python3里的print是一个function。
    两都调用方式的主要区别如下:

    print 'this is a string' #python2.7
    print('this is a string') #python3

    当然,python2.7里你也可以用括号把变量括起来, 一点都不会错:

    print('this is a string') #python2.7

    但是python3将print改成function不是白给的:

    1. 在python3里,能使用help(print)查看它的文档了, 而python2不行:

    >>help(print)
    Help on built-in function print in module builtins:
    
    print(...)
        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 values, default a space.
        end:   string appended after the last value, default a newline.
        flush: whether to forcibly flush the stream.

    2 . 在python3里,能更方便的使用输出重定向
    python2.7里,你需要以类似于C++的风格完成重定向:

    with open('print.txt', 'w') as f:
        print >> f, 'hello, python!'

    在python3里:

    with open('print.txt', 'w') as f:
        print('hello, python!', file = f)

    file是python3 print新加的一个参数。 另一个很handy的参数是sep, 例如打印一个整数数组, 但你想用星号而不是空格连接。python2时可能需要写一个循环来完成, python3里这样就行了:

    a = [1, 2, 3, 4, 5]
    print(*a, sep = '*')

    最后, 如果想在python2.7里使用python3的print,只需要在第一句代码前加入:

    from __future__ import print_function

    注意, from __future__ import ...一类的语句一定要放在代码开始处。

    推荐课程:python教程之Django视频教程

    专题推荐:python3 python2
    上一篇:pycharm怎么全局搜索 下一篇:python中的np是什么

    相关文章推荐

    • 如何更换python版本• 怎么升级python版本• 如何查看python版本• 怎么查看python版本

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网