01. 제어문

프로그램 ( 컴퓨터한테 순서대로 내리는 명령어 집합 ) 의 실행 순서를 제어하는 것

제어문의 종류는 [ 순차문 , 조건문, 반복문 ] 으로 구성 되어 있다.
* 예외 처리문도 있는데 이는 나중에 정리 할 예정 

 

[ 순차문 ]

print("첫 번째 줄")
print("두 번째 줄")
print("세 번째 줄")
  • 순차문은 프로그램이 위에서부터 아래로 순차적으로 실행되는 것을 의미.
    프로그램이 시작되면 첫 번째 줄부터 마지막 줄까지 순서대로 실행. 이것이 기본적인 프로그램 실행의 흐름이다.
  • 파이썬에서 코드는 첫 번째 줄부터 세 번째 줄까지 차례대로 실행되며, 결과로 "첫 번째 줄", "두 번째 줄", "세 번째 줄"이 출력되며, 순차문은 프로그램의 실행 흐름을 설명할 때 기본적으로 고려된다.

 

[ 조건문 ] 

if 조건:
    조건이 참일 때 실행되는 코드
elif 다른 조건:
    다른 조건이 참일 때 실행되는 코드
else:
    위의 모든 조건이 거짓일 때 실행되는 코드
  • 조건에 따라 프로그램이 다른 명령을 실행하도록 하는데 사용되며,
    조건이 참(True)이면 해당 명령을 실행하고, 거짓(False)이면 실행하지 않는다.

 

[ 반복문 ] 

while 조건:
    조건이 참일 때 실행되는 코드
for 요소 in 시퀀스:
    각 요소에 대해 실행되는 코드

 

  • 특정 조건이 충족될 때까지 또는 시퀀스 (리스트, 튜플, 문자열 등) 의 각 요소에 대해 명령을 반복하는 데 사용.

    # 리스트(List): 리스트는 파이썬에서 가장 기본적인 데이터 구조 중 하나로, 여러 개의 항목을 담을 수 있는 순서가 있는 데이터 타입. 수정이 가능하며 대괄호 [] 를 사용하여 정의
    # 튜플(Tuple): 튜플은 리스트와 비슷하지만, 튜플은 한 번 생성되면 변경할 수 없는(immutable) 데이터 구조이며
    한 번 정의되면 그 안의 요소를 추가, 삭제, 수정할 수 없다. 튜플은 소괄호 ()를 사용해서 정의
    #
    문자열(String): 문자열은 문자들의 시퀀스(sequence)로 이루어진 데이터 타입. 문자열은 작은 따옴표('')나 큰 따옴표("")로 묶어서 정의.

  • while 문의 경우, 조건이 참일 때 반복 실행되는 것
  •  
  •  

02. 조건문 ( if ~ else문 )

 

어떤 가정을 두고 조건에 참과 거짓에 따라 판단 후 상황에 따라 맞는 답을 내 놓을 때 주로 사용한다.

test = int(input('점수를 입력하세요: ' ))

if test >= 80 :
	print ('합격입니다.')
    
else : 
	print ( '불합격 입니다.' )
  • if 뒤에는 참과 거짓을 판단 할 수 있는 조건문이 들어가고, 조건문이 끝나면 반드시 콜론 (:) 을 붙여 주어야 한다
  • if 조건이 거짓일 경우, else 문이 수행 된다. else 뒤에도 받느시 콜론 (:) 을 붙여 주어야 한다.
  • 4칸의 들여 쓰기를 사용하여 해당 조건이 참일 경우 수행할 명령을 작성한다.
  • 같은 조건에서 실행 하는 경우 들여쓰기는 유지하여 작성 해야한다.

 

 

if 문 안에 다른 if 문이 들어가게 작성도 가능하다.

data = int(input('정수를 입력하세요.'))

if data >= 10 :
    
    if data == 0:
        print ( '{}는 0입니다. ' . format ( data ))
    else : 
        print ( '{}는 양수 입니다. ' . format ( data ))
                                         
else : 
    print ( '{}는 음수 입니다. ' . format ( data ))

 


03. 조건문 ( if ~ elif ~ else문 )

🫸 잘못된 예제

score  = int(input('정수를 입력하세요.')) # 여기서는 98이라고 가정

# 점수에 따라 학점 설정
if score >= 90:
    grade = 'A'
if score >= 80:
    grade = 'B'
if score >= 70:
    grade = 'C'
    
print('학점은 {} 입니다.'.format(grade))

 

elif 없이 if 로만 코드를 구성 할 경우, 파이썬 특성상 코드가 한 줄씩 차례대로 실행 되기 때문에 결과 값이 정확하게 나오지 않을 수 있다. score 값에 98이라는 수치를 입력 한다 가정 하였을 때 첫 번째 if 문에 의해서만 결과가 나와 grade 변수에 'A' 가 할당 된다 하지만 앞서 말했던 것 처럼 다음 차순에 있는 if 문의 조건 또한 만족하게 되어 'A' 가 'B' 로 변경 되게 되고 이로인해 마지막 if 문의 조건까지 맞게 되어 최종 데이터가 C로 나오게 되는 것이다.

 

 

🫸elif 사용 시

score  = int(input('정수를 입력하세요.'))

# 점수에 따라 학점 설정
if score >= 90:
    grade = 'A'
elif score >= 80:
    grade = 'B'
elif score >= 70:
    grade = 'C'

else :
    grade = 'F'
    
print('학점은 {} 입니다.'.format(grade))

 

  • 앞선 문제를 해결하기 위해서는 여러개의 조건을 하나의 if 문에서 검토 할 수 있도록 elif 를 사용한 if ~ elif ~ else 문으로 작성하는 것이 바람직하다.
  • elif 는 else if 의 줄임말로, if 문과 같은 방법으로 조건문을 표현 할 수 있다.

 

 

 


 

04. 논리 연산자

논리 연산자는 여러개의 조건을 조합하여 참인지 거짓인지 판별 할 때 사용한다.

연산자 설명 예제
and 두 조건이 모두 참인 경우에만 참 ex > = 80 and ex < 90
or 조건 중 하나만 참인 경우에도 참 ex > = 15 or ad > = 165
not 조건이 참인 경우에는 거짓 ( 피 - 연산자를 보완함 ) not ( score > = 80 and score < 90 )

 

[ 예시 ]

score = int ( input('점수를 입력하세요 : '))

if score >= 80 and score <=100 :
    print ('당신은 장학생 대상자 입니다.')
    
else : 
    print ( '장학생 대상자가 아닙니다. ')

 

 


05. 코드 예제

 

▸ 사용자로부터 정수를 입력받아 짝,홀수를 구분하는 법

data = int(input('정수를 입력하세요.'))

if data % 2 == 0 :
    print ( '짝수 입니다. ')
    
else :
    print ( '홀수 입니다. ')
  • 입력 받은 값을 짝수인지 확인 하고자 할 때 [ %2 ] 의 경우 입력 된 정수를 2로 나누고 나머지를 계산. 나머지가 0과 같다면 if문이 출력 되는 거고, 그게 아니라면 else 문이 출력 되는 것.

 

▸ 사용자로부터 정수를 입력받아 양수인지, 0인지, 음수인지 구별하여 결과를 출력 하는 법

# 입력값 변수 생성
number = int(input('정수를 입력하세요 : '))

if number > 0:
    print ( ' {} 는 양수 이다. ' . format(number))
elif number == 0:
    print ( ' {} 는 0 이다. ' . format(number))
elif number < 0:
    print ( ' {} 는 음수 이다. ' . format(number))

 

▸ 사용자로부터 정수를 3개 입력받아 가장 큰 수를 출력 하는 법

# 입력값 변수 생성
number1 = int(input('첫번째 정수를 입력하세요: '))
number2 = int(input('두번째 정수를 입력하세요: '))
number3 = int(input('세번째 정수를 입력하세요: '))

# 최대값 변수 초기화
max_num = 0

# if 문으로 최대값 찾기
if number1 >= number2 and number1 >= number3:
    max_num = number1
elif number2 >= number1 and number2 >= number3:
    max_num = number2
else:
    max_num = number3

# 결과 출력
print("{}, {}, {} 중 가장 큰 수는 {}이다.".format(number1, number2, number3, max_num))