FizzBu​​zz用逗号而不是换行符

时间:2015-03-13 06:46:23

标签: python-3.x fizzbuzz

def fizz_buzz(i):
 if i % 15 == 0:
    return ("FizzBuzz")
 elif i % 5 == 0:
    return ("Buzz")
 elif i % 3 == 0:
    return ("Fizz")
 else:
    return (i)
for i in range(1, 21):
 print(fizz_buzz(i))

在哪里以及如何使用逗号执行新的行命令?

尝试得到这样的输出:1,2,Fizz,4,Buzz,Fizz,7,8,Fizz,Buzz,11,Fizz,13,14,FizzBu​​zz,16,17,Fizz,19,Buzz
但侧身和逗号。

2 个答案:

答案 0 :(得分:0)

end=','传递给print()

def fizz_buzz(i):
 if i % 15 == 0:
    return ("FizzBuzz")
 elif i % 5 == 0:
    return ("Buzz")
 elif i % 3 == 0:
    return ("Fizz")
 else:
    return (i)
for i in range(1, 21):
 print(fizz_buzz(i), end=',')

# prints
1,2,Fizz,4,Buzz,Fizz,7,8,Fizz,Buzz,11,Fizz,13,14,FizzBuzz,16,17,Fizz,19,Buzz,

如果您不想使用尾随逗号,请将范围结束为20,然后按print(fizz_buzz(20))

结束

答案 1 :(得分:0)

考虑制作一份清单&用逗号连接元素。有一些很好的例子here

例如:

def fizz_buzz(i):
    # your code

my_list = []
for i in range(1,21):
    my_list.append( str(fizz_buzz(i)) )
print ",".join(my_list)

有更优雅的方法可以做到这一点 - 使用生成器& c,就像在链接的答案中一样 - 但是这个简单的代码可以做你想要的。请注意,join()方法仅接受字符串,因此str()中的list.append();或者,您可以确保fizz_buzz函数返回字符串,无论如何。