鱼C论坛

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

[已解决]这个第三题为什么我运行的得不到正确结果?

[复制链接]
发表于 2022-3-2 13:53:01 | 显示全部楼层 |阅读模式
5鱼币
本帖最后由 风百默 于 2022-3-2 13:56 编辑

-1fc8a8dda7c88b6a.jpg
最佳答案
2022-3-2 13:53:02
本帖最后由 isdkz 于 2022-3-2 14:25 编辑

那是因为你的第61到63行代码(行数根据你的图片),每个 x 都乘以 2 到 11 然后加了一遍,

因为 y 的取值在内循环里面,你可以用enumerate函数,

它可以根据你给定的起始值,来对你的每个数迭代出相应的索引,故对你的代码修改如下:

  1. def ISBN(n):
  2.     copy = str(n)
  3.     c = [int(i) for i in str(n)]
  4.     c = c[::-1]
  5.     sum1 = 0
  6.     for i,x in enumerate(c, start=2):      # 注意这里
  7.         sum1 = i*x+sum1
  8.     for h in [0,1,2,3,4,5,6,7,8,9,10]:
  9.         sum2 = sum1+h
  10.         if sum2%11 == 0:
  11.             if sum2%11 == 0:
  12.                 if h == 10:
  13.                     trueISBN = copy+'x'
  14.                 else:
  15.                     trueISBN = copy+str(h)
  16.             else:
  17.                 continue
  18.     return (trueISBN)
  19. for num in [201314525, 488888913, 977889994, 753231846, 701134069]:
  20.     trueISBN = ISBN(num)
  21.     print(trueISBN)
复制代码

最佳答案

查看完整内容

那是因为你的第61到63行代码(行数根据你的图片),每个 x 都乘以 2 到 11 然后加了一遍, 因为 y 的取值在内循环里面,你可以用enumerate函数, 它可以根据你给定的起始值,来对你的每个数迭代出相应的索引,故对你的代码修改如下:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-2 13:53:02 | 显示全部楼层    本楼为最佳答案   
本帖最后由 isdkz 于 2022-3-2 14:25 编辑

那是因为你的第61到63行代码(行数根据你的图片),每个 x 都乘以 2 到 11 然后加了一遍,

因为 y 的取值在内循环里面,你可以用enumerate函数,

它可以根据你给定的起始值,来对你的每个数迭代出相应的索引,故对你的代码修改如下:

  1. def ISBN(n):
  2.     copy = str(n)
  3.     c = [int(i) for i in str(n)]
  4.     c = c[::-1]
  5.     sum1 = 0
  6.     for i,x in enumerate(c, start=2):      # 注意这里
  7.         sum1 = i*x+sum1
  8.     for h in [0,1,2,3,4,5,6,7,8,9,10]:
  9.         sum2 = sum1+h
  10.         if sum2%11 == 0:
  11.             if sum2%11 == 0:
  12.                 if h == 10:
  13.                     trueISBN = copy+'x'
  14.                 else:
  15.                     trueISBN = copy+str(h)
  16.             else:
  17.                 continue
  18.     return (trueISBN)
  19. for num in [201314525, 488888913, 977889994, 753231846, 701134069]:
  20.     trueISBN = ISBN(num)
  21.     print(trueISBN)
复制代码

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-3-2 15:15:39 | 显示全部楼层
isdkz 发表于 2022-3-2 14:23
那是因为你的第61到63行代码(行数根据你的图片),每个 x 都乘以 2 到 11 然后加了一遍,

因为 y 的取 ...

谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-22 02:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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