Python3:用户输入随机数,看看是否是5的倍数。然后得到所有5的倍数的和

Python3:用户输入随机数,看看是否是5的倍数。然后得到所有5的倍数的和,python,Python,我花了一整天的时间在这个代码上。它失败了 def output (n): n = int(input('Enter a number: ') while n != 0: if n % 5 == 0: print(n, 'Yes') n = int(input('Enter a number: ') if n == 0 output = range(1, int(input('Enter a number: '))+1) print

我花了一整天的时间在这个代码上。它失败了

def output (n):
  n = int(input('Enter a number: ')

while n != 0:
    if n % 5 == 0:
      print(n, 'Yes')
    n = int(input('Enter a number: ')
    if n == 0
      output = range(1, int(input('Enter a number: '))+1)
      print (output)
output (n)
问题是:

  • 让用户输入整数以确定是否为5的倍数

  • 如果是keep count,则将保留所有数字的总和,这些数字是5的倍数

  • 任务在函数中使用循环完成,当输入值0时,循环将终止

  • 当循环终止时,返回5的倍数的计数

  • 完成后,下一步: 将变量sum\u multiple\u five传递给另一个名为print\u result()的函数,然后 打印相同的消息,但现在打印将在其自己的功能中完成

    def test(n):
        if not n%5:
            print (n,'Yes')
            return n
        else:
            print (n,'No')
            return 0
    
    total = 0
    while True:
        n = int(input('Enter a number: '))
        if not n:
            break
        total+=test(n)
    
    print(total)
    
    结果:

    Enter a number:  10
    Enter a number:  10
    Enter a number:  100
    Enter a number:  50
    Enter a number:  5
    Enter a number:  9
    Enter a number:  7
    Enter a number:  10
    Enter a number:  4
    Enter a number:  15
    Enter a number:  5
    Enter a number:  8
    Enter a number:  2
    Enter a number:  0
    8 numbers were multiple of 5s
    

    你能解释一下失败的原因吗?请指出它是如何失败的为什么有一个函数和一个称为output的变量?@cᴏʟᴅsᴘᴇᴇᴅ 已经提到了关键点,当调用变量输出时,覆盖函数。因此,当您试图在最后调用函数时,实际上是在“调用”变量。有一个名为
    output()
    的函数实际接受输入,这似乎很奇怪。它给了您一个非常好的计数!你太棒了。谢谢。与其试图说明主题或提供任何有价值的评论,你所做的只是盲目地回答原始问题。同意。但是,我确实看到了我在哪里出错,并且能够理解代码。我要感谢大家的工作,并投票支持了所有人。太好了!谢谢大家。:-)
    Enter a number:  10
    Enter a number:  10
    Enter a number:  100
    Enter a number:  50
    Enter a number:  5
    Enter a number:  9
    Enter a number:  7
    Enter a number:  10
    Enter a number:  4
    Enter a number:  15
    Enter a number:  5
    Enter a number:  8
    Enter a number:  2
    Enter a number:  0
    8 numbers were multiple of 5s