这个函数应该取一串数字(snum),然后它应该从(indx)开始,然后从那个(indx)开始并乘以下一个(数字)数字并返回值。这是当前的功能应该返回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)
答案 0 :(得分:1)
以下应该这样做:
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
操作来获取indx
和indx+dig
之间的字符,然后将string
转换为int
并乘以。