下面的代码在Python2中的输出是什么?解释你的答案

博客主要探讨了Python2和Python3中整数运算的差异。在Python2中,默认两个整数操作数执行整数运算,可通过import语句覆盖该行为,“双斜杠”操作符一直执行整除;而Python3没有此行为,两个整数操作数也不执行整数运算。

 python2

def div1(x,y):
    print "%s/%s = %s" % (x, y, x/y)

def div2(x,y):
    print "%s//%s = %s" % (x, y, x//y)

div1(5,2)
div1(5.,2)
div2(5,2)
div2(5.,2.)
div2(5.,2)
div2(5,2.)

另外,在Python3中上面的代码的输出有何不同(假设代码中的print语句都转化成了Python3中的语法结构)

在Python2中,代码的输出是:

5/2 = 2
5.0/2 = 2.5                                                 
5//2 = 2                                                    
5.0//2.0 = 2.0                                              
5.0//2 = 2.0                                                
5//2.0 = 2.0                                                
[Program finished]

默认情况下,如果两个操作数都是整数,Python2默认执行整数运算。所以,5/2 结果是2,而5./2结果是2.5

注意你可以通过下面的import语句来覆盖Python2中的这一行为

from __future__ import division

还要注意“双斜杠”(//)操作符将会一直执行整除,忽略操作数的类型。这就是为什么5.0//2.0即使在Python2中结果也是2.0

但是在Python3并没有这一行为。两个操作数都是整数时,也不执行整数运算。在Python3中,

def div1(x,y):
    print("{}/{}= {}".format(x, y, x/y))

def div2(x,y):
    print("{}//{} = {}".format(x, y, x//y))

div1(5,2)
div1(5.,2)
div2(5,2)
div2(5.,2.)

输出如下:

5/2= 2.5
5.0/2= 2.5                                                  
5//2 = 2                                                    
5.0//2.0 = 2.0                                             
[Program finished]

 

转载于:https://www.cnblogs.com/sea-stream/p/11188335.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值