首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将字符串中的数字相乘时,Python循环返回错误的值

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

Stack Overflow用户
提问于 2017-09-26 23:36:48
回答 1查看 85关注 0票数 0

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

代码语言:javascript
运行
复制
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)
EN

回答 1

Stack Overflow用户

发布于 2017-09-26 23:41:26

下面的代码应该可以做到:

代码语言:javascript
运行
复制
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

驱动程序代码:

代码语言:javascript
运行
复制
x = product(3, 5, '72890346')
print(x)
#72

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46430627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档