선택구조
선택구조의 구문형식
- 구문형식
→ 들여쓰기는 코드 블럭을 표현
→ 특정 동작을 수행하는 한 라인 이상의 명령문 집합
→ 스페이스 4칸 권고 (PEP-8)
if 불리언식 :
명령문 1
명령문 2
선택구조의 실행흐름
→ if 라는 선택구조에 의해서 명령문이 실행될수도 , 안될 수도 있다.
불리언식
- 비교연산자를 사용하여 결과가 불리언 타입으로 생성되는 표현식
불리언 타입
- 논리값이 참(True) 과 거짓 (False)의 값만 표현할 수 있는 데이터 타입
→ True 또는 False 예약어를 사용하여 표현
→ 비교 연산자를 사용한 표현식의 결과로 생성
원뿔 계산 프로그램 개선
- 기존 코드
# 반지름 사용자 입력
rad = int(input("반지름을 입력하세요 : "))
# 높이 사용자 입력
hei = int(input("높이를 입력하세요 : "))
# 부피 & 겉넓이 계산
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 :
# 부피 & 겉넓이 계산
vol = 1/3 * 3.14 * rad ** 2 * hei
suf = 3.14 * rad ** 2 + 3.14 * rad * hei
print("원뿔의 부피는 ",vol,"입니다.")
print("원뿔의 겉넓이는 ",suf,"입니다.")
논리 연산자
개념
참, 거짓을 구별할 수 있는 명제를 대상으로 명제의 집합을 위해 고안한 연산자
- 두 개의 논리값(불리언식)을 연산하여 참 또는 거짓을 결과로 얻는 연산자
→ 두개의 피연산자를 갖는 이항 연산자
→ and(논리곱), or(논리합),not(논리부정) 연산자 사용
→ 왼쪽에서 오른쪽의 방향으로 결합
and
- 두 논리값이 모두 True 일때 True이고, 어느 하나 False 일 경우 False를 반환
- 진리표 (true table)
or
- 두 논리값이 모두 False 일때 False 이고 어느 하나 True 일 경우 True를 반환
- 진리표
not
- 단항 연산자로 논리값을 반전하여 False는 True로, True는 False로 반환
- 진리표
단락평가
- short-circuit evaluation
- 첫번째 논리값만으로 전체 연산 결과가 판별가능할 때 두번째 논리값은 확인(평가)하지 않는 기법
→ C나 java 에서 예상치 못한 결과를 낳을 수 있는 단락평가의 개념은 꼭 알아둬야 한다 !
원뿔 계산 프로그램 개선
문제점 : 사용자가 높이에 음수를 입력하면 ?
# 반지름 사용자 입력
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 불리언식 :
명령문 1
else :
명령문 2
- 실행 흐름
다분 선택 구조의 구문형식
- 구문형식
if 불리언식 :
명령문 1
elif 불리언식2 :
명령문 2
..
elif 불리언식 n :
명령문 n
else :
명령문 n+1
- 실행흐름
중첩 선택 구조의 구문형식
- 구문형식
if out 불리언식 :
if in불리언식1 :
in명령문1
else :
in명령문2
else :
if in불리언식2 :
in명령문3
- 실행흐름
원뿔 계산 프로그램
# 반지름 사용자 입력
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,"입니다.")
else :
print("반지름과 높이의 값을 모두 양수로 입력해주세요")
가장 큰 수를 찾는 프로그램
- 세 수 A,B,C를 입력받고 그 중 가장 큰 수를 출력하는 프로그램
'Python' 카테고리의 다른 글
[Python] Anaconda/Miniconda 설치 및 가상화 설정 (5) | 2024.10.28 |
---|---|
파이썬으로 정적 페이지 웹 크롤링 하기 - 1 (45) | 2024.05.14 |
[Python] 제어구조 (25) | 2024.03.22 |
[Python] 프로그래밍 기초 (21) | 2024.03.21 |