Python循环在将字符串中的数字相乘时返回错误的值

2024-04-27 23:19:55 发布

您现在位置:Python中文网/ 问答频道 /正文

这个函数应该取一串数字(snum),然后取它应该从(indx)开始的索引,然后从(indx)开始,然后乘以下一个(dig)数字量并返回值。这是当前函数,应返回72,但返回41472。谢谢

def product(dig, indx, snum):
    length = int(len(snum))
    int(indx)
    int(dig)
    total = int(snum[indx])

    for k in range((indx + 1), length):
        for i in range(0, dig):
            total = total * int(snum[k])

    else:
        return total


x = product(3, 5, '72890346')

print(x)

Tags: 函数inforlendefrange数字product
1条回答
网友
1楼 · 发布于 2024-04-27 23:19:55

以下是应该做到的:

def product(dig, indx, snum):
   mul = 1
   for s in snum[indx : indx+dig+1]:     #Note the `dig+1`
      mul *= int(s)                      #multiply the number

   return mul

驱动程序代码:

x = product(3, 5, '72890346')
print(x)
#72

在代码中,逻辑很少有问题。你不需要两个循环。这里,我们使用slicing操作来获得indxindx+dig之间的字符,然后将得到的string转换成int并相乘

相关问题 更多 >