2013-02-10 7 views
-1

안녕하세요, for 루프에 문제가 있습니다, 그래서 "#"기호를 5 번 반복하여 for 공간과 한 줄에 인쇄하고 싶다고합시다.파이썬 for for 루프

for i in range(5): 
    print "#", 

나는 어떻게 사이에 공간을 탈 수 있습니까? ##### 대신 # #####처럼 보입니다. ???

+0

오, 얘들 아, 일은 곱셈 (*) 연산자 나 반복 연결을 사용하지 않으려 고하며 for 루프를 사용하여 인쇄해야한다는 것입니다. – user2020817

+0

도움을 주신 모든 분들께 감사드립니다. 고마워. 모든 제안을 감사하십시오 !! – user2020817

+1

*** 왜 *** 당신이 이런 일들을 피하려고합니까? *** 왜 *** for 루프를 사용해야합니까? 질문에 제약 조건을 설명하면 적합한 대답을 얻을 확률이 높아집니다. 어쨌든, [파이썬 프린트가 공백을 추가하지 못하도록하려면 어떻게합니까?] (http://stackoverflow.com/questions/255147/how-do-i-keep-python-print-from-adding-spaces)에 대한 대답은 여전히 ​​있습니다. 유효한. – Johnsyweb

답변

3

난 당신이 그런 경우라면 당신은 몇 가지 옵션이 옵션이 바로 '#'을 인쇄 이외의이 루프에서 일을 계획 가정

import sys 
for i in range(5): 
    sys.stdout.write('#') 

을 아니면 인쇄를 사용하기로 결정하는 경우 :

for i in range(5): 
    print "\b#", 

나 :

from __future__ import print_function 
for i in range(5): 
    print('#', end='') 

당신은 실제로 단지 '#의'n을 인쇄하려면 시간은 당신은 할 수 있습니다 :

n = 5 
print '#'*n 

또는 :

n = 5 
print ''.join('#' for _ in range(n)) 
0

사용에게 print기능을 대신. (파이썬 2에서는 print은 일반적으로 문장이지만, print_function을 가져 와서 함수로 바뀝니다).

from __future__ import print_function 

for i in range(5): 
    print('#', end='') 

이 기능은 사용자가 지정할 수 있습니다 end 키워드 인수를 지원합니다.

+0

명확하게 말하면,'print'는 일반적으로 키워드입니다 (파이썬 2.7 만 생각합니다). 그래서 print * 함수 *를 사용하는 방법입니다. –

0

은 내가이 ...이 같은 일을해야 조인을 사용합니다 :

print(''.join('x' for x in range(5))) 
+2

또는 'print'# '* 5'. – Johnsyweb

+0

참 ... 아마 심지어 청소기. –

0

당신은 루프없이 그것을 할 수 있습니다! 당신은 더 복잡한 일을하는 경우

print '#' * 5 

, 당신은 이해와 str.join를 사용할 수 있습니다

print ''.join(str(i**2) for i in range(4)) # prints 0149 
print ','.join(str(i+1) for i in range(5)) # prints 1,2,3,4,5 
+0

OP가 쉼표를 원하지 않는다고 생각했습니다. 그러나 그가하는 경우 당신의 조인은 절대적으로 정확합니다. –

+0

예였습니다. 그러나 나는 그것이 쉼표없이 명확하다는 것을 짐작한다. 감사. – nneonneo

+0

예; 그러나 컬럼을 사용하는 솔루션은 더 복잡한 것이 필요한 사람에게는 정말로 좋습니다. 나는 그것을 좋아. :) –

0

를 다른 답변에 추가 게시, 당신은 또한 수 :

mystring = '' 
for i in range(5): 
    mystring += '#' # Note that you could also use mystring.join() method 
        # .join() is actually more efficient. 
print mystring 

아니면 그냥 수 있습니다 :

print '#'*5 
+0

나는 'mystring.join ('#')'당신이 생각하는대로 행동합니다. – Matt

+2

'mystring.join ('#')'은 아무 작업도하지 않고 ... 이런 식으로 문자열을 만드는 것은 효율적이지 않습니다. – nneonneo

+0

그래서 'print'# '* 5'을 그냥 사용합니다. 이 예제는 "공간을 추가하지 않고 어떻게 인쇄합니까?"라는 단순한 대답은'print '#####'' –