最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

Python中整除()和取余(%)问题

互联网 admin 6浏览 0评论

Python中整除(//)和取余(%)问题

前言:Python中的默认整除所采用的是向下取整(round down),这也就导致了在处理负数的整除时会存在一些问题。而取余操作就是建立在整除的基础上的,从而导致这两种计算均存在问题。


整除

默认向下(小)取整

>>> 10//3
3
# 这也就导致了在负数的整除过程中出现问题
>>> 10//-3
-4
# 这是因为真正的结果-3.3333在向下(小)取整时,变成了-4

取余

取余的实现是建立在整除的基础上的

x % y = x − ( ( x / / y ) ∗ y ) x \% y = x-((x//y)*y) x%y=x−((x//y)∗y)

这个公式自己稍微想一下不难得出。但是由于//整除本就在处理负数时存在问题,所以在复数的取余同样存在问题。

>>> 10%3
1
>>> 10%-3
-2
## 这里的-2是因为10//-3=-4,从而10-12=-2

Python中整除(//)和取余(%)问题

前言:Python中的默认整除所采用的是向下取整(round down),这也就导致了在处理负数的整除时会存在一些问题。而取余操作就是建立在整除的基础上的,从而导致这两种计算均存在问题。


整除

默认向下(小)取整

>>> 10//3
3
# 这也就导致了在负数的整除过程中出现问题
>>> 10//-3
-4
# 这是因为真正的结果-3.3333在向下(小)取整时,变成了-4

取余

取余的实现是建立在整除的基础上的

x % y = x − ( ( x / / y ) ∗ y ) x \% y = x-((x//y)*y) x%y=x−((x//y)∗y)

这个公式自己稍微想一下不难得出。但是由于//整除本就在处理负数时存在问题,所以在复数的取余同样存在问题。

>>> 10%3
1
>>> 10%-3
-2
## 这里的-2是因为10//-3=-4,从而10-12=-2

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论