我一直在尝试使用Python学习FizzBuzz问题,我发现这很容易,所以决定增加一层额外的复杂性。
我的问题是:我还将如何使该程序也为也包含数字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)
最简单,最直接的方法之一就是将数字转换为字符串。
解决方案:
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)