본문 바로가기

TEAM STUDY/PYTHON

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

728x90
반응형

이번주 계획

  1.  반복 과정에서 조건 판단하기 2
  2.  반복 과정에서 조건 판단하기 3
  3.  양수만 입력 받기

for문은 반복은 n번, 나눗셈도  n번, if문 판단은 n번 합니다.

print('+와 -를 번갈아 출력합니다.')

n = int(input('몇 개를 출력할까요? : ')

for i in range(n) :
	if i % 2 :
    	print('-', end='' )
    else :
    	print('+', end='' )

print()

 

위의 코드는 두가지의 문제점이 존재한다.

 

첫번째, for문이 반복할 때마다  if문을 수행한다는 것  입니다.

즉, n이 50,000 이라면 if 문도 50,000 번 수행됩니다. 

 

두번쨰는 이 프로그램은 상황에 따라 유연하게 수정하기 어렵다는 것 입니다.

 

만약 i를 1부터 n까지 1씩 증가시키고 싶다면

다음과 같이range() 함수로 전달하는 값과 for문의 print() 함수 호출 순서를 바꿔야 합니다.

 

print('+와 -를 번갈아 출력합니다.')

n = int(input('몇 개를 출력할까요? : ')

for i in range( 1, n+1 ) :
	if i % 2 :
    	print('-', end='' )
    else :
    	print('+', end='' )

print()

 

위에서 제시한 문제점의 해결 법

print('+와 -를 번갈아 출력합니다.')

n = int(input('몇 개를 출력할까요? : ')

for _ range( n//2 ) :
	print('+-', end='' )
    	
if n % 2 :
    print('+', end='' )

print()

 

 

for문은 '+-'를 n//2 번 출력합니다.

이때 for문에 언더스코어(_) 를 사용한 이유는 for문에서 range() 함수가 for 문을 순환하며 반환하는 값(인덱스) 를 사용할 필요가 없기 떄문입니다. 즉, 파이썬에서는 무시하고 싶은 값을 언더스코어로 표현할 수 있습니다.

 

 

n이 홀수일 경우에는 마지막에 '+'를 추가하기 위해서 if문을 사용했습니다.

 

 

 

 

728x90
반응형