그럼 보통은 ASCII 예술 문제를 해결하고자 할 때, 당신은 이미지 분석으로 시작합니다. 여기서 볼 수있는 것은 모든 이미지입니다 :
- 첫 번째 줄에는
2*n+3
별표가 있습니다.
- 다음에 별표가있는
n
공백, 별표, n
공백 및 별표가있는 n
줄이 뒤 따른다. 및
- 줄 번호
2*n+3
별표.
그래서 우리는 단순히의 사용을 만들 수있는 순서가 (list
는, str
ING, tuple
) 숫자를 곱한 시퀀스를 시간의 주어진 숫자를 반복 동일한 유형의 시퀀스는 사실의 .
첫 번째 줄과 마지막 줄의 경우 간단하게 '*'*(2*n+3)
을 쓸 수 있습니다. 중간의 선들은 '*'+' '*n+'*'+' '*n+'*'
으로 구성 될 수 있으며 우리는 이것을 n
번 반복해야합니다. 함께 라인에 가입 '\n'.join(..)
를 사용하여 다음
['*'*(2*n+3)]+['*'+' '*n+'*'+' '*n+'*']*n+['*'*(2*n+3)]
#^first ^middle line ^last line
그리고 :
def print_pattern(n):
print('\n'.join(['*'*(2*n+3)]+['*'+' '*n+'*'+' '*n+'*']*n+['*'*(2*n+3)]))
을이 생성
>>> print_pattern(1)
*****
* * *
*****
>>> print_pattern(2)
*******
* * *
* * *
*******
>>> print_pattern(3)
*********
* * *
* * *
* * *
*********
>>> print_pattern(4)
***********
* * *
* * *
* * *
* * *
***********
>>> print_pattern(5)
*************
* * *
* * *
* * *
* * *
* * *
*************
또한 그것을 만들 수 있습니다 그래서 우리는 함께 라인의 목록을 구성 할 수 있습니다 더 많은 사전 (비록 보통은 덜 파이썬 적이라고 여겨지 긴하지만) for
루프를 사용함으로써 :
또는 사용자 입력과 프로그램:
프로그램이 수행해야하는 두 가지 일이있다
def print_pattern(n):
print('*'*(2*n+3))
for _ in range(n):
print('*'+' '*n+'*'+' '*n+'*')
print('*'*(2*n+3))
n = int(input("Eliga un número: ")) print_pattern(n)
는 당신이 우리를 보여줄 수 일반화? –
이제는 질문의 일부입니다. 물어봐 줘서 고마워. –
그리고 시도한 결과물? –