FizzBu​​zz 还打印包含 3 和 5 的数字

FizzBuzz also printing numbers that contain3 and 5

我一直在尝试使用 Python 了解 FizzBu​​zz 问题,我发现它相当简单,所以决定增加额外的复杂性。

我的问题是:我如何让程序也打印'Fizz' 或 'Buzz' 对于也包含数字 3 或 5 的任何数字。

我不确定我是否应该继续将其转换为字符串然后拆分它并比较字符串,或者我是否缺少可以更有效地解决此问题的函数

我当前的代码显示如下:

for fizzBuzz in range(0, 100):
    if fizzBuzz % 5 == 0 and fizzBuzz % 3 == 0:
        print('FizzBuzz')
    elif fizzBuzz % 5 == 0:
        print('Buzz')
    elif fizzBuzz % 3 == 0:
        print('Fizz')
    else:
        print(fizzBuzz)

最简单直接的方法之一是将数字转换为字符串。

解决方案:

for fizzBuzz in range(0, 100):
  three = fizzBuzz % 3 == 0 or "3" in str(fizzBuzz)
  five = fizzBuzz % 5 == 0 or "5" in str(fizzBuzz)
  if three and five:
    print("FizzBuzz")
  elif five:
    print("Buzz")
  elif three:
    print("Fizz")
  else:
    print(fizzBuzz)