Python 取余数/整数

在Python语言中,取余运算也被称为模运算,是通过使用%符号来进行的,用于计算两个数相除后的余数,也是比较常见的操作之一,那么Python中取余是什么意思?我们通过这篇文章来介绍一下。

 在Python中,取余是一种运算,其结果是除法运算后剩下的余数。它用百分号%符号表示。

  

1、取整数的余数

  当我们需要取两个整数相除的余数时,我们可以使用%操作符。例如,要计算13除以5的余数,可以使用以下代码:

'''a=13b=5c=a%bprint(c)#输出为3'''

  此代码将13除以5,余数为3。在这个例子中,我们使用了%操作符来计算余数。

  2、取浮点数的余数

  与整数不同,浮点数的余数不是很直观。Python中的%操作符通常只用于整数的取余数,如果我们使用浮点数,则可能会得到不准确的结果。

  例如,如果我们尝试计算0.1除以0.02的余数,可能会得到不准确的结果:

```a = 0.1b = 0.02c = a % bprint(c) # 输出为0.019999999999999997```

  在这个例子中,我们使用%操作符来计算余数,但是得到的结果不是我们期望的精确值。这是因为浮点数在计算机中的存储方式会导致精度丢失,因此我们不能依赖于%操作符来计算浮点数的余数。

  3、取负数的余数

  当我们需要计算负数的余数时,可能会遇到一些问题。在Python中,当我们使用%操作符计算负数的余数时,结果的符号与除数的符号相同,而不是被除数的符号。

  例如,如果我们尝试计算-13除以3的余数,可能会得到不同于我们期望的结果:

```a = -13b = 5c = a % bprint(c) # 输出为2```

  在这个例子中,我们使用%操作符来计算余数,但是得到的结果不是我们期望的-3,而是2。这是因为Python中的%操作符计算负数的余数时,结果的符号与除数的符号相同,而不是被除数的符号。

  为了得到正确的结果,我们可以使用以下代码:

```a = -13b = 5c = (a % b + b) % bprint(c) # 输出为2```

  在这个例子中,我们使用一个额外的操作符来计算负数的余数。我们首先计算a%b,然后加上b,再对b取余数。这样可以确保得到的结果与我们期望的结果一致。

  4、取模运算

  除了%操作符之外,Python还提供了一个称为divmod()的函数,它可以同时计算商和余数。

  例如,如果我们需要计算13除以5的商和余数,可以使用以下代码:

```a = 13b = 5c, d = divmod(a, b)print(c, d) # 输出为2 3```

  在这个例子中,我们使用divmod()函数来计算13除以5的商和余数。函数返回两个值,分别为商和余数。

在Python中取整运算的运算符为//,且取整运算的取整为向下取整,不进行四舍五入
例:9//4=2,即9对4取整等于2
-9//-4=2,因为-9÷-4=2.25,取整为2
那么问题来了,9//-4等于多少呢?
9//-4=-3,因为9÷-4应该等于-2.25,那么对-2.25向下取整,应该为-3,而不是-2,所以9//-4=-3
那么-9//4呢?
-9÷4也应该等于-2.25,所以向下取整,得到-9//4=-3
总结:
9//4=2
-9//-4=2
9//-4=-3
-9//4=-3

Python 几种取整的方法

1、向下取整

向下取整直接用内建的 int() 函数即可:

2、四舍五入

对数字进行四舍五入用 round() 函数:

3、向上取整

向上取整需要用到 math 模块中的 ceil() 方法:

4、分别取整数部分和小数部分

有时候我们可能需要分别获取整数部分和小数部分,这时可以用 math 模块中的 modf() 方法,该方法返回一个包含小数部分和整数部分的元组:

有人可能会对最后一个输出结果感到诧异,按理说它应该返回 (0.2, 4.0) 才对。这里涉及到了另一个问题,即浮点数在计算机中的表示,在计算机中是无法精确的表示小数的,至少目前的计算机做不到这一点。上例中最后的输出结果只是 0.2 在计算中的近似表示。Python 和 C 一样, 采用 IEEE 754 规范来存储浮点数,如果希望更详细的了解这一点可以参考下面资料。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

早日实现财富自由-2025

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值