2013-08-27 101 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