Python中对负数的整除和取余及特值情况

2023-11-05

整数取余负数

技巧:先忽略负号,之后取余,和正常取余不同的是:被取余的数x一个数,不能比取余的数小(可以相等,这意味着任何一个整数取余-1结果都为0),之后用这个数减去取余的数,最后在得到的结果上加上负号;当被取余的负数取正后大于取余的数时,直接使用取正后的被取余的数减去取余的数,之后加上负号即为最终结果(e.g. 22取余-3,先将-3看作3,之后3x7=21,比22小,所以3x8=24,再用24-22=2,最后在得到的结果上加上负号得到最终结果为-2,即:22 % -3 = -2)

>>>print(22 % -2)
0
>>>print(22 % -3)
-2
>>>print(22 % -4)
-2
>>>print(22 % -5)
-3
>>>print(22 % -6)
-2
>>>print(22 % -10)
-8
>>>print(22 % -23)
-1
>>>print(22 % -24)
-2
>>>print(22 % -25)
-3
>>>print(22 % -26)
-4

负数取余整数

技巧:先忽略负号,之后取余,和正常取余不同的是:被取余的数x一个数,不能比取余的数小(可以相等,这意味着任何一个整数取余-1结果都为0),之后用这个数减去取余的数即为最终结果;当取余的负数取正后小于被取余的数时,直接使用被取余的数加上取余的负数,即为最终结果(e.g. -22取余3,先将-22看作22,之后3x7=21,比22小,所以3x8=24,再用24-22=2,最终结果即为2,即:-22 % 3 = 2)

>>>print(-22 % 2)
0
>>>print(-22 % 3)
2
>>>print(-22 % 4)
2
>>>print(-22 % 5)
3
>>>print(-22 % 6)
2
>>>print(-22 % 10)
8
>>>print(-22 % 23)
1
>>>print(-22 % 24)
2
>>>print(-22 % 25)
3
>>>print(-22 % 26)
4

负数取余负数

技巧:先忽略负号,之后正常取余,最后在取余结果中加上负号;当被取余的数的绝对值大于取余的数的绝对值时,结果恒为取余的数(不是它的绝对值哦!这意味着此时返回结果恒为一个负数)(e.g. -22取余-3,先将-3看作3将-22看作22,之后3x7=21,用22-21=1,最后添加负号得到-1,最终结果即为-1,即:-22 % -3 = -1)

>>>print(-22 % -2)
0
>>>print(-22 % -3)
-1
>>>print(-22 % -4)
-2
>>>print(-22 % -5)
-2
>>>print(-22 % -6)
-4
>>>print(-22 % -10)
-2
>>>print(-22 % -23)
-22
>>>print(-22 % -24)
-22
>>>print(-22 % -25)
-22
>>>print(-22 % -26)
-22

整数整除负数

技巧:先将负数看作正数,之后-(被整除的数x? >= 除数);当被整除的数的绝对值大于除数时,运算结果恒为-1(对被整除的数乘以哪个数大于等于除数 进行取负)(e.g. 25 // -4,先将-4看作4,之后4x哪个数大于25?答案是7,最后将结果取负,得到最终结果为-7,即:25 // -4 = -7)

>>>print(25 // -2)
-13
>>>print(25 // -3)
-9
>>>print(25 // -4)
-7
>>>print(25 // -5)
-5
>>>print(25 // -6)
-5
>>>print(25 // -10)
-3
>>>print(25 // -26)
-1
>>>print(25 // -27)
-1
>>>print(25 // -28)
-1
>>>print(25 // -29)
-1

负数整除整数

技巧:先将负数看作正数,之后-(被整除的数x? >= 除数的绝对值)(对被整除的数乘以哪个数大于等于除数的绝对值 进行取负);当除数的绝对值大于被整除的数时,运算结果恒为-1(e.g. -25 // 4,先将-25看作25,之后4x哪个数大于25?答案是7,最后将结果取负,得到最终结果为-7,即:-25 // 4 = -7)

>>>print(-25 // 2)
-13
>>>print(-25 // 3)
-9
>>>print(-25 // 4)
-7
>>>print(-25 // 5)
-5
>>>print(-25 // 6)
-5
>>>print(-25 // 10)
-3
>>>print(-25 // 26)
-1
>>>print(-25 // 27)
-1
>>>print(-25 // 28)
-1
>>>print(-25 // 29)
-1

负数整除负数

技巧:忽略符号,之后正常整除即可,最终结果无需添加负号;当被整除的数的绝对值大于除数的绝对值时,结果恒为0(e.g. -25 // -3,先将-25看作25将-3看作3,之后25 // 3 = 8,最终结果就是8,即:-25 // -3 = 8)

>>>print(-25 // -2)
12
>>>print(-25 // -3)
8
>>>print(-25 // -4)
6
>>>print(-25 // -5)
5
>>>print(-25 // -6)
4
>>>print(-25 // -10)
2
>>>print(-25 // -26)
0
>>>print(-25 // -27)
0
>>>print(-25 // -28)
0
>>>print(-25 // -29)
0

特殊的值

1:

符号左边:
    取余:符号右边的数为正时,结果恒为1;符号右边的数为负时,结果恒为符号右边的数 + 1

// 取余-符号右边的数为正时
>>>print(1 % 22)
1
>>>print(1 % 25)
1
>>>print(1 % 30)
1
>>>print(1 % 50)
1
>>>print(1 % 91)
1
// 取余-符号右边的数为负时
>>>print(1 % -22)
-21
>>>print(1 % -25)
-24
>>>print(1 % -30)
-29
>>>print(1 % -50)
-49
>>>print(1 % -91)
-90

    整除:符号右边的数为正时,结果恒为0;符号右边的数为负时,结果恒为-1

// 整除-符号右边的数为正时
>>>print(1 // 22)
0
>>>print(1 // 25)
0
>>>print(1 // 30)
0
>>>print(1 // 50)
0
>>>print(1 // 91)
0
// 整除-符号右边的数为负时
>>>print(1 // -22)
-1
>>>print(1 // -25)
-1
>>>print(1 // -30)
-1
>>>print(1 // -50)
-1
>>>print(1 // -91)
-1

符号右边:
    取余:结果恒为0

// 取余
>>>print(22 % 1)
0
>>>print(25 % 1)
0
>>>print(30 % 1)
0
>>>print(-30 % 1)
0
>>>print(-50 % 1)
0
>>>print(-91 % 1)
0

    整除:结果恒为符号左边的数取反

// 整除
>>>print(22 // 1)
22
>>>print(25 // 1)
25
>>>print(30 // 1)
30
>>>print(-30 // 1)
-30
>>>print(-50 // 1)
-50
>>>print(-91 // 1)
-91

-1:

符号左边:
    取余:符号右边的数为正数时,结果恒为符号右边的数 + -1;当符号右边的数为负数时,结果恒为-1

// 取余
>>>print(-1 % 22)
21
>>>print(-1 % 25)
24
>>>print(-1 % 30)
29
>>>print(-1 % -30)
-1
>>>print(-1 % -50)
-1
>>>print(-1 % -91)
-1

    整除:符号右边的数为正数时,结果恒为-1;当符号右边的数为负数时,结果恒为0

// 整除
>>>print(-1 // 22)
-1
>>>print(-1 // 25)
-1
>>>print(-1 // 30)
-1
>>>print(-1 // -30)
0
>>>print(-1 // -50)
0
>>>print(-1 // -91)
0

符号右边:
    取余:结果恒为0

// 取余
>>>print(22 % -1)
0
>>>print(23 % -1)
0
>>>print(58 % -1)
0
>>>print(-22 % -1)
0
>>>print(-23 % -1)
0
>>>print(-58 % -1)
0

    整除:结果恒为符号左边的数取反

// 整除
>>>print(22 // -1)
-22
>>>print(23 // -1)
-23
>>>print(58 // -1)
-58
>>>print(-22 // -1)
22
>>>print(-23 // -1)
23
>>>print(-58 // -1)
58

0:

0不能出现在符号右边,当符号左边为0时,结果恒为0

// 0出现在符号右边会报错
>>>print(22 // 0)
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    22 // 0
ZeroDivisionError: integer division or modulo by zero
>>>print(22 % 0)
Traceback (most recent call last):
  File "<pyshell#6>", line 1, in <module>
    22 % 0
ZeroDivisionError: integer division or modulo by zero

// 符号左边为0的情况
// 整除
>>>print(0 // 22)
0
>>>print(0 // 34)
0
>>>print(0 // 98)
0
// 取余
>>>print(0 % 22)
0
>>>print(0 % 34)
0
>>>print(0 % 98)
0

俩个数相等时:

负号在符号左边:
    取余:结果恒为0

>>>print(-22 % 22)
0
>>>print(-34 % 34)
0
>>>print(-79 % 79)
0
>>>print(-13 % 13)
0
>>>print(-25 % 25)
0
>>>print(-30 % 30)
0

    整除:结果恒为-1

>>>print(-22 // 22)
-1
>>>print(-34 // 34)
-1
>>>print(-79 // 79)
-1
>>>print(-13 // 13)
-1
>>>print(-25 // 25)
-1
>>>print(-30 // 30)
-1

负号在符号右边:
    取余:结果恒为0

>>>print(22 % -22)
0
>>>print(34 % -34)
0
>>>print(79 % -79)
0
>>>print(13 % -13)
0
>>>print(25 % -25)
0
>>>print(30 % -30)
0

    整除:结果恒为-1

>>>print(22 // -22)
-1
>>>print(34 // -34)
-1
>>>print(79 // -79)
-1
>>>print(13 // -13)
-1
>>>print(25 // -25)
-1
>>>print(30 // -30)
-1

左右俩边都为负时:
    取余:结果恒为0

>>>print(-22 % -22)
0
>>>print(-34 % -34)
0
>>>print(-79 % -79)
0
>>>print(-13 % -13)
0
>>>print(-25 % -25)
0
>>>print(-30 % -30)
0

    整除:结果恒为1

>>>print(-22 // -22)
1
>>>print(-34 // -34)
1
>>>print(-79 // -79)
1
>>>print(-13 // -13)
1
>>>print(-25 // -25)
1
>>>print(-30 // -30)
1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python中对负数的整除和取余及特值情况 的相关文章

  • 如何忽略传递给函数的意外关键字参数?

    假设我有一些功能 f def f a None print a 现在 如果我有一本字典 比如dct a Foo 我可以打电话f dct 并得到结果Foo打印 但是 假设我有一本字典dct2 a Foo b Bar 如果我打电话f dct2
  • 如何使用 django (python) 和 s3 上传文件?

    我正在寻找一种将文件上传到 s3 的方法 我正在使用 django 我目前正在使用亚马逊的 python 库进行上传以及以下代码 View def submitpicture request fuser request session lo
  • Django 未在 404 页面上应用应用程序中的 CSS 文件

    姜戈3 0 8 Python 3 7 x 我有一个包含一些应用程序的 Django 项目 我正在尝试为 400 403 404 500 错误制作一些 默认 错误页面 我已经这样做了 并显示了适当的模板 但没有任何样式或 JS 在 404 错
  • turtle.Screen().screensize() 未输出正确的屏幕尺寸[重复]

    这个问题在这里已经有答案了 我编写了一些代码来在屏幕周围随机放置点 但是 它并没有覆盖整个屏幕 import turtle import random t turtle Turtle color red green blue pink ye
  • Seaborn 热图中的自定义调色板间隔

    我正在尝试绘制一个heatmap https seaborn pydata org generated seaborn heatmap html使用seaborn库 绘图函数如下所示 def plot confusion matrix da
  • 在 vim 折叠线中语法高亮 Python

    我发现代码折叠 http en wikipedia org wiki Code folding帮助我更好地组织我的文件 因此 在我的底部 vimrc 我启用vim代码折叠 http vimdoc sourceforge net htmldo
  • 从主机名中提取域名

    是否有一种编程方式可以从给定的主机名查找域名 给出 gt www yahoo co jp 返回 gt yahoo co jp 有效但非常慢的方法是 拆分为 并从左侧删除 1 个组 使用 dnspython 加入并查询 SOA 记录 当返回有
  • 类型错误:需要 Future 或协程

    我尝试在 asyncssh 上自动重新连接 ssh 客户端 SshConnectManager 必须留在后台并在需要时进行 ssh 会话 class SshConnectManager object def init self host u
  • Flask 中的 import 和 extends 有什么区别?

    我正在阅读 Flask Web 开发 在例4 3中 extends base html import bootstrap wtf html as wtf 我想知道 extends 和 import 有什么区别 我认为它们在用法上很相似 在什
  • python-polars 通过分隔符将字符串列拆分为许多列

    在 pandas 中 以下代码会将 col1 中的字符串拆分为许多列 有没有办法在极地做到这一点 d col1 a b c d a b c d df pd DataFrame data d df a b c d df col1 str sp
  • 读取文件特定行号的有效方法。 (奖励:Python 手册印刷错误)

    我有一个 100 GB 的文本文件 它是来自数据库的 BCP 转储 当我尝试导入它时BULK INSERT 我在第 219506324 行上收到一个神秘错误 在解决此问题之前 我想看看这一行 但可惜的是我最喜欢的方法 import line
  • 使用 3d 对象作为 3d 散点图中的标记 - Python

    使用下面的代码 我尝试模拟一个用罐头制成的碗 我希望每个标记都是一个罐头 最好的方法是什么 我真的很感激任何建议 谢谢 import pylab import numpy as np from math import pi sin cos
  • 如何在数据框中绘制包含三列的无向图,形成 3 种不同类型的节点(三方)?

    我正在尝试使用三个不同的列表绘制网络的可视化 这三个列表形成 3 种类型的节点 下面的代码正在运行 如图所示 需要两个列表 用户 ID 评分 但是 我希望我的图表是三部分的 即 user userId review ratings prod
  • 使用 Python 脚本打开特定文件类型?

    如何使 Python 脚本成为特定文件类型 例如 foo 的默认应用程序 例如 当我双击 Finder Explorer 中的文件时 我希望该文件在 Python 脚本中打开 这可以在 Win 和 或 OS X 中实现吗 如果重要的话 该应
  • 如何测试列表中多个值的成员资格

    我想测试两个或多个值是否在列表中具有成员资格 但我得到了意外的结果 gt gt gt a b in b a foo bar a True 那么 Python 可以同时测试列表中多个值的成员资格吗 这个结果意味着什么 See also How
  • 如何加速 pandas 字符串函数?

    我正在使用 pandas 矢量化 str split 方法来提取从 上的拆分 返回的第一个元素 我还尝试使用 df apply 与 lambda 和 str split 来产生等效的结果 使用 timeit 时 我发现 df apply 的
  • 如何使用 pygame.mixer 重复音乐?

    我创建了以下使用 pygame mixer 播放 mp3 音乐的代码 然而 音乐不会重复 有什么想法可以让音乐重复播放吗 这是代码 playlist list playlist append put music here mp3 playl
  • 如何可视化多维数据上的 kmeans 聚类

    我在 mnist 数据集上使用 kmeans 聚类算法 并希望可视化聚类后的图 到目前为止我做了这个 from mnist import MNIST mndata MNIST Datasets X train y train mndata
  • 如何保持 python 3 脚本 (Bot) 运行

    不是母语英语 抱歉 英语可能很蹩脚 我也是编程新手 您好 我正在尝试使用 QueryServer 连接到 TeamSpeak 服务器来创建机器人 经过几天的努力 它有效 只有 1 个问题 而我却被这个问题困扰了 如果您需要检查 这是我正在使
  • Pip 突然使用了错误版本的 Python

    在 os x 上使用 pip 时遇到一个奇怪的问题 据我所知 快速查看我的 bash history 似乎可以确认 我最近没有对我的配置进行任何更改 唉 pip 命令似乎突然使用了与以前不同的 python 版本 到目前为止 我使用命令 p

随机推荐

  • iOS 3DTouch的小细节

    在App启动后 添加3DTouch的快捷入口 代码如下 NSMutableArray arrShortcutItem NSMutableArray UIApplication sharedApplication shortcutItems
  • C语言程序-打印九九乘法表

    一 问题描述 使用C语言实现打印九九乘法表程序 二 程序实现 代码如下 include
  • 悲观锁(Synchronized)和乐观锁(CAS)

    文章目录 悲观锁和乐观锁 Synchronized Synchronized使用 Synchronized底层原理 Java1 6对Synchronized的优化 synchronized的等待唤醒机制 CAS CAS使用 CAS底层原理
  • 若依框架代码生成器的应用

    java后端 先设计数据库中的表 我这里的表名为 food 找到代码生成器 点击导入表 然后选择要导入的表名 这里选择的是自己的表名 点击编辑 这里填 表明和实体类的类名 一般不需要填都是自动生成的 然后作者名 可以填 自己的作者名称 生成
  • cs1.6修改服务器参数设置,[心得] cs的网络参数调整指南

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 其实HL网路新技术的引擎就是把自己的电脑每一个动作和网路紧密的连结在一起 不过世界上有太多不同的网路 所以没以办法做的一庞大的资料库自动一一校正 所以 说这麽多 就是设定成这样cl latenc
  • cmd命令进入某个目录

    每次都记不住命令 终于整理了一下 1 开始 gt 运行 gt cmd 2 进入某个磁盘 直接盘符代号 如d 然后回车 到D盘下 不用CD 命令切换 3 输入dir 可以看到d盘下的各个文件名称 3 进入除根录以外的文件夹 cd 文件夹路径
  • 链表(应用篇)

    1 概述 链表是在程序设计过程中经常使用的数据结构 bcos系统内部的调度和tasklet的实现都是基于链表 所以 对链表的支持是bcos与生俱来的特性 bcos的链表设计参考了Linux内核链表的设计思想 如果用户想使用链表只需要在自己的
  • C++基础六:C++入门知识、黑盒测试(详解)与复杂度

    cin与cout cin与cout是C 中的输入和输出函数 需要添加头文件 include
  • QT常用分层式软件架构

    第一次写博客 只做个分享吧 关于软件架构的常用模型目前找到的最详细的解说基于Qt的软件框架设计 amwha的专栏 CSDN博客 qt软件框架 1 QMainWWindow主界面类 转到线程是在实例化子界面对象时 将对应的数据处理类对象转到新
  • 笔记-TCP/IP IP地址字符串表示最大长度

    笔记 TCP IP IP地址字符串表示最大长度 IPv4 IPv6 IPv4 定义在
  • 经典vue面试题:谈一谈computed计算属性和watch监听属性的区别

    computed计算属性和watch监听的区别 computed属性 首先computed计算属性是用于在HTML模板中表达式更加简洁 易维护 特点 computed具有缓存功能 当与computed变量相关的变量值不发生改变时 一直用的是
  • windows7 64位机上配置MinGW+Codeblocks+ wxWidgets

    在Windows7 64位机子上安装配置MinGW Codeblocks wxWidgets步骤如下 1 下载mingw get inst 20111118 http sourceforge net projects mingw 2 双击m
  • vue预渲染

    vue预渲染 vue是一个单页面应用 spa 只有一个 html 文件 内容只有一个 app根节点 通过加载js脚本来填充页面要渲染的内容 然而这种方式无法被爬虫和百度搜索到 如果想对某些页面进行SEO 搜索引擎优化 优化 可以通过预渲染实
  • Springboot中使用websocket发送信息给指定用户和群发

    websocket是一种长连接协议 相较于传统的http短连接 websocket不仅可以由客户端向服务器发送消息 可以主动向客户端发起信息 经常用于及时聊天 游戏和服务器向客户端推送信息 主要优点 1 节约带宽 不停地轮询服务端数据这种方
  • 合并排序算法(详解)

    合并排序是成功应用分治技术的一个完美例子 对于一个需要排序的数组A 1 n 合并排序把它一分为二 A 1 n 2 和A n 2 1 n 并对每个子数组 进行递归排序 然后把这两个排好序的子数组合并成一个有序数组 void MergeSort
  • 微信美团支付服务器异常怎么回事,无法使用微信支付?美团回应:支付系统出现异常 已全面恢复...

    5 月 24 日消息 今日上午 美团无法微信支付 登上微博热搜 有网友反映 在点外卖的时候发现美团无法使用微信支付 今日午间 12 43 分 美团通过官方微博发布回应 今天早上 10 点 28 分 我们接到了微信支付系统出现异常抖动的通知
  • fatal: unable to access =‘https://github.com/‘: OpenSSL SSL_read: Connection was reset, errno 10054

    命令 git clone https github com binary husky chatgpt academic git 出现问题 采用了 git config global unset http proxy 命令还是不行 把 htt
  • Android自动化测试工具——Monkey

    前言 最近开始研究Android自动化测试方法 整理了一些工具 方法和框架 其中包括android测试框架 CTS Monkey Monkeyrunner benchmark 以及其它test tool等等 一 什么是Monkey Monk
  • python range和xrange

    python range和xrange 如果需要迭代一个数字序列的话 可以使用range 函数 range 函数可以生成等差级数 如例 for i in range 5 print i 这段代码将输出0 1 2 3 4五个数字 range
  • Python中对负数的整除和取余及特值情况

    整数取余负数 技巧 先忽略负号 之后取余 和正常取余不同的是 被取余的数x一个数 不能比取余的数小 可以相等 这意味着任何一个整数取余 1结果都为0 之后用这个数减去取余的数 最后在得到的结果上加上负号 当被取余的负数取正后大于取余的数时