2013-08-27 45 views
2

我需要打印验证码:无法弄清楚如何在python中水平打印?

for x in range (1, 21): 

    if x%15==0: 
     print("fizzbuzz") 

    elif x%5==0: 
     print("buzz") 
    elif x%3==0: 
     print("fizz") 

    else: 
     print (x) 

平铺而不是将其垂直打印,像这样:

 
1 

2 

3 

 
1 2 3 

我不知道怎么样,一些帮助会很好。由于

回答

10

两个选项:

厚积薄发的结果字符串print最后:

result = "" 
for x in range (1, 21): 

    if x%15==0: 
     result = result + "fizzbuzz " 

    etc... 
print result 

或者告诉Python不要用换行符结束打印的字符串。在Python 3,你似乎可以用,你通过设置print功能,这是"\n"(新行),默认的end参数做到这一点:

for x in range (1, 21): 

    if x%15==0: 
     print("fizzbuzz",end=" ") 

    etc... 

历史注释:在Python 2,这可能通过在print声明末尾添加逗号来实现; print "fizzbuzz",

+1

我不是downvoter;实际上我只是投了票,因为我相信OP使用Python 3而不是2(考虑到他写他的打印函数/语句的方式)。如果他使用Python 3,那么这个答案是最好的。 – rmunn

+1

我修改了它,它非常适合结束=“”非常感谢! –

4

做到这一点,它会打印全部在一行:

for x in range (1, 21): 

    if x%15==0: 
     print ("fizzbuzz"), 

    elif x%5==0: 
     print ("buzz"), 
    elif x%3==0: 
     print ("fizz"), 

    else: 
     print (x), 

它将打印这样的:

1 2 fizz 4 buzz fizz 7 8 fizz buzz 11 fizz 13 14 fizzbuzz 16 17 fizz 19 buzz

+4

我相信OP是使用Python 3,而不是2,从观察他使用的打印功能,而不是打印语句 - 在这种情况下,这个答案是不正确的。如果他使用的是Python 3,则在另一个答案中使用'end =“”'方法更好。 – rmunn

+0

我正在使用3是的,基督徒所说的结果仍然垂直打印。 –

+0

Ohhhh非常抱歉即时通讯不使用3,但我会保持我的asnwer有人绊倒在这个问题上,并使用2对此感到抱歉:) – Serial

2

'\ n'字符写在最后,除非打印语句以逗号结尾。

http://docs.python.org/2/reference/simple_stmts.html

+0

这是针对Python2的,原始问题针对的是Python 3,使用'print(...,end ='')'得到该效果,有效地将“字符串结尾”重新定义为空,而不是默认的“\” N' – cfi