Python Fizzbuzz 循环问题

标签 python loops fizzbuzz

我已经搜索了大约一个小时的答案,似乎大多数人对 fizzbuzz 的编码方式都与我不同。

但是,在尝试了一切方法来找出为什么这个简单的代码不起作用后,我感到非常沮丧。

任何人都可以指出我确定遇到的简单问题吗?代码运行但它只返回值 1。

def fizzbuzz(intList):
    for n in intList:
        if n % 3 == 0 and n % 5 == 0:
            return n.replace(str(n),"Fizzbuzz")
        elif n % 3 == 0:
            return n.replace(str(n),"Fizz")
        elif n % 5 == 0:
            return n.replace(str(n),"Buzz")
        else:
            return n

最佳答案

它查看的第一个值是1。由于 1%x 对于 1x 仅是 0,因此它会转到 else 并返回 1。然后就完成了,因为这就是 return 的作用。

这会导致更大的问题,即您正在启动一个循环,然后保证仅在一次迭代后就会离开该循环,因为每个分支中都有一个 return 。您需要将这些 return 语句替换为 append()list(不要忘记 return 生成的 list) 或 print() 调用。

此外,如果您从 3 等内容开始,您的代码将尝试对整数使用 replace,而这不是您可以对整数执行的操作。你会得到一个回溯。

关于Python Fizzbuzz 循环问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34101222/

相关文章:

rust - 在 Rust 中使用不同的字符串类型和 if else 结构

python - 如何手动关闭BaseHTTPServer中的连接?

haskell - Haskell 中的 fizzbuzz ?

python - 开发启发式方法来测试简单的匿名 Python 函数的等效性

javascript - 如何在一个框架中创建多个对象? (创意编码)

R - 向量中特定值的嵌套循环

C语言for循环迭代

javascript - 如何在 JavaScript 中编写 FizzBu​​zz 而不使用 % 运算符

python - 将每个列表中的前 2 个元素连接到列表列表中的函数

python - 没有聚合的 Pandas 数据透视表形状