2017-02-21 164 views
0

我想水平打印字符n數字時代,迄今,我有這樣的代碼字符:打印使用水平在for循環

#print n times * 

times=input("¿How many times will it print * ? ") 

for i in range(times): 
    print"* \t" 

但結果是這樣的:

¿打印多少次*? 5 *
*
*
*
*

如何讓我的星號打印水平?

EG:
所有的 * * * * * *

回答

0

這是因爲默認情況下,python的print功能後,它增加了一個新行,你需要使用sys.stdout.write函數(),你可以看到here

EG:

#print n times * 
import sys 
times=input("¿How many times will it print * ? ") 

for i in range(times): 
    sys.stdout.write("* \t") 
#Flush the output to ensure the output has all been written 
sys.stdout.flush() 
1

首先,你需要投你的輸入轉換成int。

其次,通過在打印語句的末尾添加逗號,它將打印水平。

此外,因爲你是使用python 2.x中,你應該使用raw_input代替input

times = int(raw_input("How many times will it print * ? ")) 

for i in range(times): 
    print "* \t", 

輸出:

* * * * * 
0

你可以嘗試這種啓動。據我所知,print()在每次調用後都系統地插入一個\ n(換行符),所以解決方法是隻調用一次「print()」。

#print n times * 

times=input("¿How many times will it print * ? ") 

str = "" 
for i in range(times): 
    str += "* \t" 

print(str)