首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在python中返回可与某些数字整除的数字的加法?

问如何在python中返回可与某些数字整除的数字的加法?
EN

Stack Overflow用户
提问于 2021-05-14 00:32:36
回答 2查看 51关注 0票数 0

所以我正在创建一个函数,它应该返回所有小于等于x的可被4或5整除的数字的相加,但不应同时将可被这两个数字整除的数字相加。到目前为止,我已经能够在能够接受被整除的4和5的数字并返回它的函数中编写代码。然而,我还不能编写代码来实现将两个数相加的能力。下面的图片应该显示了我希望python输出的内容。

​

​

到目前为止,我所做的代码如下:

代码语言:javascript
复制
def personal_numbers(num):
    #variable to store the sum
    sum=0
    #running loop through the range
    #if a number is divisible by i 
    for i in range(1000):
        if (i%4==0 and i%5==0):
            sum+=i
        return sum
print(personal_numbers(12))
EN

回答 2

Stack Overflow用户

发布于 2021-05-14 00:36:59

两件事。不要使用sum作为变量,使用sum([x,y])时会得到Nonetype。最后,在for循环中有一个返回。这将在第一次迭代时停止程序。

代码语言:javascript
复制
def personal_numbers(num):
    #variable to store the sum
    sum=0
    #running loop through the range
    #if a number is divisible by i 
    for i in range(1000):
        if (i%4==0 and i%5==0):
            sum+=i
    return sum
print(personal_numbers(12))
票数 0
EN

Stack Overflow用户

发布于 2021-05-14 00:48:24

几点

  • 请注意,不要使用内置函数作为变量名。一种常见的解决方法是在变量前加上前缀:sum_.
  • You不考虑num变量。您应该迭代直到这个for值,这样num循环就变成:

代码语言:javascript
复制
for i in range(num + 1):

  • if语句并不完全正确,您还需要排除可以被4和5整除的数字。所以只需检查i%4 != i%5

代码语言:javascript
复制
if (i % 4 == 0 or i%5==0) and i%4 != i%5:

  • 返回语句必须在

循环之外。

代码

代码语言:javascript
复制
def personal_numbers(num):
     sum_=0
     for i in range(num + 1):
          if (i % 4 == 0 or i%5==0) and i%4 != i%5:
               sum_+=i
     return sum_

print(personal_numbers(12))
# 39
print(personal_numbers(21))
# 70

有趣的是,您可以在sum中使用列表理解

代码语言:javascript
复制
def personal_numbers_inline(num):
     return sum([i for i in range(num + 1) if (i % 4 == 0 or i%5==0) and i%4 != i%5])
print(personal_numbers_inline(12))
# 39
print(personal_numbers_inline(21))
# 70
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67522842

复制
相关文章

相似问题

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