python中除法是_Python中的除法运算符?

通常,表达式的数据类型取决于参数的类型。此规则适用于大多数运算符:就像我们将两个整数相加时,结果应为整数。但是,如果进行除法,则效果不佳,因为存在两个不同的期望。有时,我们期望除法运算会生成精确的浮点数,而其他时候,我们需要四舍五入的整数结果。

通常,divide(/)的python定义仅取决于参数。例如在python 2.7中,除数20/7为2,因为两个参数都为整数。但是,20./7将生成2.857142857142857作为输出,因为参数是浮点数。

上面的'/'定义通常会给应用程序带来问题,而这些应用程序使用的是作者未曾期望的数据类型。

考虑一个简单的程序,将温度从摄氏温度转换为华氏温度会根据输入产生两种不同的结果。如果一个用户提供整数参数(18)和另一浮点参数(18.0),则即使所有输入的数值均相等,答案也完全不同。#Conversion of celcius to Fahrendheit in python 2.6

>>> print 18*9/5 + 32

64

>>> print 18.0*9/5 + 32

64.4

>>> 18 == 18.0

True

从上面我们可以看到,当我们通过18.0时,我们得到正确的输出,而当我们通过18时,我们得到不正确的输出。这是因为在python 2.x中,如果所有参数都是整数,则“ /”运算符将作为下限。但是,如果参数之一是浮点值,则“ /”运算符将返回一个浮点值。

显式转换函数(例如float(x))可以帮助防止这种情况。然而,这个想法是为了让python是简单而稀疏的语言,而不会进行密集的转换以覆盖罕见的意外数据类型的情况。从Python 2.2版本开始,添加了新的除法运算符以阐明期望的内容。普通的/运算符将来会返回浮点结果。一个特殊的除法运算符//将返回四舍五入的结果。>>> # Python 2.7 program to demonstrate the use of "//" for both integers and floating point number

>>> print 9//2

4

>>> print -9//2

-5

>>> print 9.0//2

4.0

>>> print -9.0//2

-5.0

Python 3.x中的除法运算

在python 3.x中,删除了上述缺陷,并且'/'运算符对整数和浮点参数都进行了浮点除法。>>> #Conversion of celcius to Fahrendheit in python 3.x

>>> #Passing 18 (integer)

>>> print (18*9/5 + 32)

64.4

>>> #Passing 18.0(float)

>>> print(18.0*9/5 + 32)

64.4

当我们传递+ ve或–ve参数时,也没有区别。>>> print(9/2)

4.5

>>> print(-9/2)

-4.5

>>> print(9.0/2)

4.5

>>> print(-9.0/2)

-4.5

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值