728x90
반응형
이번주 계획
- 반복 과정에서 조건 판단하기 2
- 반복 과정에서 조건 판단하기 3
- 양수만 입력 받기
# * 을 n 개 출력 하되 w 개마다 줄바꿈 하기
print('*을 출력합니다.')
n = int(input('몇 개를 출력할까요 ? : '))
w = int(input('몇 개를 출바꿈할까요 ? : '))
for i in range(n) :
print( '*', end='' )
if i % w == w- 1 :
print()
if n % w :
print()
i 를 1씩 증가 시키면서 * 를 출력하고
줄바꿈은 i를 w로 나눈 나머지가 w-1 일 때 줄바꿈합니다. 즉, w가 5이면 i가 4, 9, 14 일 때 줄바꿈합니다.
하지만 n이 w가 배수가 아니면 줄바꿈을 for문 밖에서 따로 수행해야 합니다.
for문을 반복할 때마다 if 문을 실행하므로 효율적이지 않습니다.
개선
print( '*개를 출력합니다' )
n = int(input('몇 개를 출력할까요 ? : '))
w = int(input('몇 개마다 줄바꿈할까요 ? : '))
for _ in range ( n // w ) :
print( '*' * w )
rest = n % w
if rest :
print('*' * rest)
파이썬에서 '//' 연산자는 몫을 의미한다.
아 이번 코드는 예를 들어 사용자가
몇 개 ? 14
몇 개마다 ? 5
라고 입력 했을 때 14 // 5 = 2 니까 2번 줄바꿈을 하고
몇 개마다 의 5 번씩 '*' 를 출력한다
그리고 for문을 끝내고 나워서 if 문에서 n % w
즉, 나머지가 존재 한다면
'*' 를 나머지 만큼 출력한다.
728x90
반응형
'TEAM STUDY > PYTHON' 카테고리의 다른 글
직사각형의 넓이로 변의 길이 구하기 (0) | 2021.01.09 |
---|---|
양수만 입력 받기 (0) | 2021.01.09 |
반복 과정에서 조건 판단하기 2 (0) | 2021.01.04 |
반복 과정에서 조건 판단하기1 (0) | 2021.01.03 |
연속하는 정수의 합을 구하기 위해 값 정렬하기 (0) | 2021.01.02 |