본문 바로가기

TEAM STUDY/PYTHON

반복 과정에서 조건 판단하기 3

728x90
반응형

이번주 계획

  1.  반복 과정에서 조건 판단하기 2
  2.  반복 과정에서 조건 판단하기 3
  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
반응형