[Lecture/Python] 06강 - 선택 구조

김찬미·2025년 5월 2일

[Lecture] Python

목록 보기
6/13

6강 요약: 선택 구조

✅ 선택 구조

특정 영역 내의 명령문에 대한 실행 여부를 프로그램 실행 과정 중 결정하는 구조
→ 실행 여부는 조건에 따라 결정


구문 형식


→ 들여쓰기는 코드 블록을 표현
→ 특정 동작을 수행하는 한 라인 이상의 명령문의 집합
→ 스페이스 4칸 권고(PEP-8)


실행 흐름


불리언식 (boolean 식)

비교연산자를 사용하여 결과가 불리언(boolean) 타입으로 생성되는 표현식

연산자수학적 기호의미
<<작다
<=작거나 같다
>>크다
>=크거나 같다
===같다
!=같지 않다

boolean 타입

논리값인 참(Ture)와 거짓(False)의 값만 표현할 수 있는 데이터 타입
True 혹은 False 예약어로 표현
→ 비교 연산자를 사용한 표현식의 결과로 생성


✅ 논리 연산자

논리 연산자란?

참, 거짓을 구별할 수 있는 명제를 대상으로 명제의 집합을 위해 고안한 연산자

두 개의 논리값(boolean 식)을 연산하여 참 또는 거짓을 결과로 얻는 연산자

  • 두 개의 피연산자를 갖는 이항 연산자
    and(논리곱), or(논리합), not(논리부정) 연산자 사용
    → 왼쪽에서 오른쪽 방향으로 결합

1) and 연산자

둘 다 True일 때만 True

ABA and B
TrueTrueTrue
TrueFalseFalse
FalseTrueFalse
FalseFalseFalse

2) or 연산자

둘 중 하나라도 True면 True

ABA or B
TrueTrueTrue
TrueFalseTrue
FalseTrueTrue
FalseFalseFalse

3) not 연산자

값을 반대로 바꿈

Anot A
TrueFalse
FalseTrue

단락 평가

short-circuit evaluation
첫 번째 논리값 만으로 전체 연산 결과가 판별 가능할 때, 두 번째 논리값은 확인(평가)하지 않는 기법

#둘 다 확인해야 함
temp >= 27 ad season == "summer"

# If 첫 번째가 True면 두 번째는 단락 평가
temp >= 27 or season == "summer"

원뿔 계산 프로그램 개선

만약 사용자가 반지름 값에 음수를 입력하면?

#반지름사용자입력
rad = int(input("반지름을입력하세요:"))
#높이사용자입력
hei = int(input("높이를입력하세요:"))

if rad > 0 and hei > 0:
	#부피&겉넓이계산
	vol = 1/3 * 3.14 * rad ** 2 * hei
	suf =3.14 * rad ** 2 + 3.14 * rad * hei
	print("원뿔의부피는" ,vol, "입니다.")
	print("원뿔의겉넓이는" ,suf, "입니다")

문제점: 사용자는 음수를 입력했을 때 왜 문제가 생기는지 알지 못함

✅ 선택 구조의 확장

원뿔 계산 프로그램 문제

#반지름사용자입력
rad = int(input("반지름을입력하세요:"))
#높이사용자입력
hei = int(input("높이를입력하세요:"))

if rad > 0 and hei > 0:
	#부피&겉넓이계산
	vol = 1/3 * 3.14 * rad ** 2 * hei
	suf =3.14 * rad ** 2 + 3.14 * rad * hei
	print("원뿔의부피는" ,vol, "입니다.")
	print("원뿔의겉넓이는" ,suf, "입니다")

이분 선택 구조

if-else


다분 선택 구조

if-elif-else

else 문은 의무가 아님, 필요 없으면 적지 않아도 ⭕


중첩 선택 구조

if문 안에 또 다른 if문이 들어가는 구조

profile
백엔드 지망 학부생

0개의 댓글