gpt4 book ai didi

Python 迭代 - 查找字符串中数字的乘积的问题

转载 作者:行者123 更新时间:2023-11-30 23:26:02 25 4
gpt4 key购买 nike

尝试在 python 中迭代数字字符串并打印前 5 个数字的乘积,然后是第二个 5,然后是第三个 5,依此类推。不幸的是,我只是不断地获取前 5 个数字的乘积并超过。最终我会将它们添加到一个列表中。为什么我的代码卡住了?

编辑:原始数字是整数,所以我必须将其设为字符串

def product_of_digits(number):
d= str(number)
for integer in d:
s = 0
k = []
while s < (len(d)):
print (int(d[s])*int(d[s+1])*int(d[s+2])*int(d[s+3])*int(d[s+4]))
s += 1

print (product_of_digits(a))

最佳答案

让我列出程序中的错误。

  1. 您毫无意义地迭代 d。你不需要那个。

  2. s += 1 不是 while 循环的一部分。因此,s 永远不会增加,从而导致无限循环。

  3. print (product_of_digits(a)) 位于函数本身内部,其中 a 未定义。

  4. 要查找所有连续 5 个数字的乘积,您不能循环直到 d 末尾。所以,循环应该是 while s <= (len(d)-5):

  5. 您已初始化 k ,但没​​有使用它。

因此,更正后的程序如下所示

def product_of_digits(number):
d, s = str(number), 0
while s <= (len(d)-5):
print(int(d[s]) * int(d[s+1]) * int(d[s+2]) * int(d[s+3]) * int(d[s+4]))
s += 1

product_of_digits(123456)

输出

120
720

您还可以使用 for 循环,如下所示

def product_of_digits(number):
d = str(number)
for s in range(len(d) - 4):
print(int(d[s]) * int(d[s+1]) * int(d[s+2]) * int(d[s+3]) * int(d[s+4]))

关于Python 迭代 - 查找字符串中数字的乘积的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22726553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com