2017-02-21 132 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)