python2和python3语法区别

本文详细介绍了Python从版本2到版本3中print语句的变化,包括如何在不同版本中输出单个值、多个值,以及如何控制输出结束符和重定向输出。通过实例对比,读者可以了解到在Python3中print已成为一个函数,并学会如何使用其参数来实现更灵活的输出。

转载自:https://www.cnblogs.com/kaid/p/7994512.html

print语句

在Python 2里,print是一个语句。无论你想输出什么,只要将它们放在print关键字后边就可以。在Python 3里,print()是一个函数。就像其他的函数一样,print()需要你将想要输出的东西作为参数传给它。

Notes

Python2Python3
printprint()
print 1print(1)
print 1,2print(1,2)
print 1,2,print(1,2,end=' ')
print >> sys.stderr,1,2,3print(1,2,3,file=sys.stderr)

1. 为输出一个空白行,需要调用不带参数的print()。

2. 为输出一个单独的值,需要将这这个值作为print()的一个参数就可以了。

3. 为输出使用一个空格分隔的两个值,用两个参数调用print()即可。

4. 这个例子有一些技巧。在Python 2里,如果你使用一个逗号(,)作为print语句的结尾,它将会用空格分隔输出的结果,然后在输出一个尾随的空格(trailing space),而不输出回车(carriage return)。在Python 3里,通过把end=' '作为一个关键字参数传给print()可以实现同样的效果。参数end的默认值为'\n',所以通过重新指定end参数的值,可以取消在末尾输出回车符。

5. 在Python 2里,你可以通过使用>>pipe_name语法,把输出重定向到一个管道,比如sys.stderr。在Python 3里,你可以通过将管道作为关键字参数file的值传递给print()来完成同样的功能。参数file的默认值为std.stdout,所以重新指定它的值将会使print()输出到一个另外一个管道。

 

 

Python 2 Python 3语法上存在一些显著区别: ### 1. `print` 语句 在 Python 2 中,`print` 是一个语句,不需要使用括号;而在 Python 3 中,`print` 是一个函数,必须使用括号。 ```python # Python 2 print "Hello, World!" # 无需括号 # Python 3 print("Hello, World!") # 必须使用括号 ``` ### 2. 整数除法 Python 2 中,两个整数相除结果为整数,会自动向下取整;Python 3 中,两个整数相除结果为浮点数。 ```python # Python 2 result = 5 / 2 # 结果为 2 # Python 3 result = 5 / 2 # 结果为 2.5 ``` ### 3. Unicode 字符串 Python 2 中有 `str` `unicode` 两种字符串类型;Python 3 中只有 `str` 类型,并且默认使用 Unicode 编码。 ```python # Python 2 s = u"你好" # 需要加 u 前缀表示 Unicode 字符串 # Python 3 s = "你好" # 直接使用即可 ``` ### 4. `xrange` 函数 Python 2 中有 `range` `xrange` 两个函数,`range` 返回一个列表,`xrange` 返回一个迭代器;Python 3 中 `xrange` 被移除,`range` 函数的行为 Python 2 中的 `xrange` 类似,返回一个迭代器。 ```python # Python 2 for i in xrange(5): # 使用 xrange print(i) # Python 3 for i in range(5): # 直接使用 range print(i) ``` ### 5. 异常处理语法 Python 2 中异常处理可以使用 `except Exception, e` 语法Python 3 中必须使用 `except Exception as e` 语法。 ```python # Python 2 try: result = 1 / 0 except ZeroDivisionError, e: print e # Python 3 try: result = 1 / 0 except ZeroDivisionError as e: print(e) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值