2014-12-09 3 views
0

* 뒤에 공백을 표시하고 싶습니다. 내 코드는 다음과 같습니다파이썬에서 '*'사이의 공백을 인쇄하는 방법

***** 
**** 
*** 
** 
* 

하지만 내가 원하는 :

def stars(n): 
    for x in reversed(range(n+1)): 
      print x * '*' 

내가 얻을 출력은 또한

* * * * * 
* * * * 
* * * 
* * 
* 

, 내가


처럼 오른쪽에서 인쇄 할
* * 
    * 

마지막 위치에서 인쇄하는 방법이 있습니까?

답변

4

당신이 문자열을 곱하면, 당신이 또한 각 줄 끝에서 공간을 후행 보여줄 것 print x * '* '

>>> def stars(n): 
...   for x in reversed(range(n+1)): 
...     print x * '* ' 
... 
>>> stars(4) 
* * * * 
* * * 
* * 
* 

주를 사용할 수 있습니다, 단일 문자 일 필요는 없습니다; 이 당신을 위해 문제가있는 경우, 당신은 사용할 수 있습니다

>>> from __future__ import print_function 
>>> print(*('*'*4),sep=' ') 
* * * * 
>>> def stars(n): 
...  for x in reversed(range(n+1)): 
...    print(*(x * '*'), sep=' ') 
... 
>>> stars(4) 
* * * * 
* * * 
* * 
* 
5

당신은 더 쉽게 일련의 가입 str.join를 사용할 수 있습니다

print (x * '* ')[:-1] 

은 또한 분리 인수 sep를 사용하는 인쇄 기능을 가져올 수 이 경우 지정된 구분 기호와 문자, 이것은

를 제공 ' '

def stars(n, delim=' '): 
    for x in reversed(range(n+1)): 
     print(delim.join('*'*x)) 

stars(5) 

공간

* * * * * 
* * * * 
* * * 
* * 
* 
관련 문제