2026. 4. 3. 23:48ㆍ카테고리 없음
파이썬 프로그래밍 5주차 수업에서는 프로그램의 흐름을 결정하는 제어 구조와 그중에서도 핵심인 **선택 구조(조건문)**에 대해 학습했다.
1. 프로그램의 3가지 기본 제어 구조
파이썬에서 프로그램의 흐름을 제어하는 방식은 크게 세 가지로 나뉜다.
* 순차 구조 (Sequence): 명령들이 작성된 순서대로 위에서 아래로 실행되는 가장 기본적인 구조이다.
* 선택 구조 (Selection): 조건에 따라 실행할 명령을 선택하는 구조로, if-else 문을 사용한다.
* 반복 구조 (Iteration): 동일한 명령이 특정 조건까지 반복되면서 실행되는 구조이다.
2. 조건문의 핵심 문법과 규칙
조건문을 작성할 때는 파이썬만의 고유한 문법 규칙을 준수해야 한다.
* 콜론(:)의 사용: if, elif, else 문장의 끝에는 반드시 콜론을 붙여야 하며, 이는 문장이 아직 끝나지 않았음을 의미하는 핵심 문법이다.
* 들여쓰기 (Indentation): 파이썬은 들여쓰기로 실행 블록을 구분한다. 들여쓰기 레벨이 정확히 맞아야만 조건문이 정상적으로 작동한다.
* 한 줄 쓰기: 실행문이 하나일 경우에는 들여쓰기 없이 한 줄로 작성할 수 있다.
* 다중 조건 (elif): else뿐 아니라 여러 갈래의 조건을 설정할 때는 elif를 사용하여 다중 조건문을 구성한다.
3. 논리 연산자 (Logical Operators)
복잡한 조건을 하나로 묶거나 결과를 반전시키기 위해 논리 연산자를 사용한다.
* and: 앞뒤 조건이 모두 참일 때만 결과가 참이 된다.
* or: 두 조건 중 하나만 참이어도 결과가 참이 된다.
* not: 조건의 결과를 뒤집는다. 참이면 거짓으로, 거짓이면 참으로 바꾼다.
4. 실전 코드 실습
4.1. 로그인 프로그램 구현 (중첩 조건문)
사용자로부터 아이디와 패스워드를 입력받아 저장된 정보와 일치하는지 검증하는 프로그램을 작성했다.
구현 과정:
* 변수 설정: 프로그램 내에 미리 아이디(id)와 비밀번호(pw) 정보를 저장한다.
* 아이디 입력: 사용자에게 아이디 입력을 요청받는다.
* 아이디 검증: 입력받은 값이 저장된 아이디와 일치하는지 확인한다.
* 패스워드 입력 (중첩 구조): 아이디가 일치할 경우에만 패스워드 입력을 요청받는 하위 조건문을 실행한다.
* 최종 결과: 비밀번호까지 일치하면 "로그인 되었습니다"를 출력하고, 일치하지 않으면 각각의 단계에 맞는 오류 메시지를 출력한다.
id = 'ilove'
pw = '1234'
myid = input('id를 입력하십시오: ')
if id == myid:
print('id를 찾았습니다.')
mypw = input('pw를 입력하십시오: ')
if pw == mypw:
print('로그인 되었습니다.')
else:
print('pw를 잘못 입력하셨습니다.')
else:
print('아이디를 찾을 수 없습니다.')
4.2. 세 정수 중 가장 큰 수 구하기
세 개의 정수를 입력받아 비교 로직을 통해 최대값을 추출했다. result 변수에 첫 번째 값을 먼저 할당한 뒤, 나머지 변수들과 순차적으로 비교하여 더 큰 값을 result에 갱신하는 방식을 사용했다.
a = int(input('첫번째 정수: '))
b = int(input('두번째 정수: '))
c = int(input('세번째 정수: '))
result = a
if result < b:
result = b
if result < c:
result = c
print(f'가장 큰 정수는 {result}입니다.')
4.3. Up/Down 게임
random.randrange를 사용하여 난수를 생성하고 이를 맞추는 실습을 진행했다. while (True) 구문을 통해 무한 루프를 생성하고, 사용자가 정답을 맞혔을 때만 break를 사용하여 프로그램을 종료하도록 설계했다.
import random
number = random.randrange(1, 10)
while (True):
mynumber = int(input('숫자를 추측하세요: '))
if number == mynumber:
print('정답입니다.')
break
elif number < mynumber:
print('DOWN!!!!')
else:
print('UP!!!!')