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

问题描述 投票:0回答:1

我一直在尝试使用Python学习FizzBu​​zz问题,我发现这很容易,所以决定增加一层额外的复杂性。

我的问题是:我还将如何使该程序也为也包含数字3或5的任何数字打印'Fizz'或'Buzz'。

我不确定是否应该先将其转换为字符串,然后将其拆分并比较字符串,或者是否缺少我想更有效地解决此问题的功能

我的当前代码显示在下面:

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)
python fizzbuzz
1个回答
0
投票

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

解决方案:

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)
© www.soinside.com 2019 - 2024. All rights reserved.