鱼C论坛

 找回密码
 立即注册
查看: 24|回复: 2

[已解决]divmod 问题

[复制链接]
发表于 1 小时前 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

  1. A=1
  2. G=7
  3. aa,bb=divmod(A,7)
  4. print("元素A的位置:第{0}行,第{1}列".format(aa+1,bb))
  5. cc,dd=divmod(G,7)
  6. print("元素G的位置:第{0}行,第{1}列".format(cc+1,dd))
复制代码


G 的位置显示不对呀?
最佳答案
1 小时前
列数一般从1开始计数,先对元素编号减1,然后再进行divmod运算就好了

修改后:
  1. A = 1
  2. G = 7
  3. aa, bb = divmod(A - 1, 7)
  4. print("元素A的位置:第{0}行,第{1}列".format(aa + 1, bb + 1))
  5. cc, dd = divmod(G - 1, 7)
  6. print("元素G的位置:第{0}行,第{1}列".format(cc + 1, dd + 1))
复制代码


包OK的
无标题.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 1 小时前 | 显示全部楼层
你的代码中,当使用 divmod(G, 7) 计算元素 G(值为7)时,返回的商是1,余数是0。按照你的格式化输出,会显示为第2行第0列,但这通常不是我们期望的结果(因为列数一般从1开始计数,且余数0表示前一行的最后一列)。

实际上,如果你想计算一个元素在具有7列的网格中的位置(假设元素编号从1开始,按行顺序排列),正确的做法是先对元素编号减1,然后再进行divmod运算。这样,余数的范围是0到6,分别对应第1列到第7列,商的行号也从0开始,加1后得到实际行号。

以下是修改后的代码:

  1. A = 1
  2. G = 7
  3. aa, bb = divmod(A - 1, 7)
  4. print("元素A的位置:第{0}行,第{1}列".format(aa + 1, bb + 1))
  5. cc, dd = divmod(G - 1, 7)
  6. print("元素G的位置:第{0}行,第{1}列".format(cc + 1, dd + 1))
复制代码


运行结果:
元素A的位置:第1行,第1列
元素G的位置:第1行,第7列

这样,元素A和G的位置就都正确了。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 1 小时前 | 显示全部楼层    本楼为最佳答案   
列数一般从1开始计数,先对元素编号减1,然后再进行divmod运算就好了

修改后:
  1. A = 1
  2. G = 7
  3. aa, bb = divmod(A - 1, 7)
  4. print("元素A的位置:第{0}行,第{1}列".format(aa + 1, bb + 1))
  5. cc, dd = divmod(G - 1, 7)
  6. print("元素G的位置:第{0}行,第{1}列".format(cc + 1, dd + 1))
复制代码


包OK的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-12 12:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表