You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么Python中40//60=0、-40//60=-1且-40%60=20?

Python整数运算规则解析

首先明确Python中两个整数运算的核心设计逻辑:

  • // 是地板除法,运算结果会向负无穷方向取整(不是向0取整)
  • 整数除法和取余运算严格满足公式:a = (a // b) * b + (a % b),余数的符号永远和除数b一致

运算结果逐个说明

  1. 40 // 60:
    40除以60的精确值约为0.666,向负无穷方向取整就是0,所以结果为0。
  2. -40 // 60:
    -40除以60的精确值约为-0.666,向负无穷方向取整会得到比-0.666更小的整数-1,所以结果为-1。
  3. -40 % 60:
    代入上面的公式:a=-40,b=60,a//b=-1,可得 -40 = (-1)*60 + 余数,计算得余数为20,同时除数60是正数,余数20也符合和除数同号的规则。

时钟类代码优化

你不需要手动把数值转成正数处理,直接利用Python本身的取余和地板除法规则就能简化代码,逻辑更清晰也更少出错:

class Clock:
    def __init__(self, hour, minute):
        # 先把所有时间统一转成总分钟数处理,再拆分小时和分钟
        total_minutes = hour * 60 + minute
        # 一天总分钟数是1440,直接取余就能得到0-1439之间的分钟数,自动处理正负值
        total_minutes %= 1440
        self.hour = total_minutes // 60
        self.minute = total_minutes % 60

优化后的代码不需要额外的while循环和math库依赖,不管输入的hour和minute是正还是负,都能自动算出正确的24小时制时钟时间。

内容的提问来源于stack exchange,提问作者kruffer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 21:06:08