我的Euler Practice代码是否有更干净的Python版本

我的Euler Practice代码是否有更干净的Python版本,python,Python,如果我们列出10以下的所有自然数,它们是3或5的倍数,我们得到3、5、6和9。这些倍数之和是23 求1000以下所有3或5的倍数之和。我的Python代码运行正常,我想知道它是否可以改进或缩短 x = [] y = [] z = [] n = int(input()) for i in range(1, n+1): if i%3 == 0: x.append(i) r = sum (x) for j in range(1, n+1)

如果我们列出10以下的所有自然数,它们是3或5的倍数,我们得到3、5、6和9。这些倍数之和是23

求1000以下所有3或5的倍数之和。我的Python代码运行正常,我想知道它是否可以改进或缩短

  x = []
     y = []
     z = []
n = int(input())
for i in range(1, n+1):
    if i%3 == 0:
        x.append(i)
        r = sum (x)
for j in range(1, n+1):
    if j%5 == 0:
        y.append(j)
        s = sum(y)
for m in range(1, n+1):
    if m%3 == 0 and m%5 == 0:
        z.append(m)
        t = sum(z)


print((r+s)-t)

我不知道这算不算干净 但是为了回应前面的评论,我认为这里是您的一行解决方案:

n = int(input())
print((sum(list(range(0, n, 3)))+sum(list(range(0, n, 5))))-sum(list(range(0, n, 15))))

如果代码有效,则可以访问显示其他解决方案的讨论页面。你试过了吗?如果你的代码有效,这是一个要求“改进或缩短”的错误站点。请尝试,但一定要阅读并遵循他们的指导方针。@RoryDaulton是对的。。。一旦你找到了一个特定问题的解决方案,你可以在projecteuler网站上看到其他人的。不过有一个提示,对于这个简单的问题,解决方案的长度不应超过1行~50个字符;)