뚝딱햄 탈출기

[Python] 조건문 : if elif else 문 본문

Programming language/Python

[Python] 조건문 : if elif else 문

hyrmzz1 2023. 10. 2. 22:43

이것이 취업을 위한 코딩 테스트다 with 파이썬 - 나동빈 저

APPENDIX A. 코딩 테스트를 위한 파이썬 문법 정리 내용

조건문이란?

프로그램을 작성할 때 프로그램의 흐름을 제어하는 문법으로, 조건문을 이용하면 조건에 따라 프로그램의 로직을 설정할 수 있다.

if ~ elif ~ else 문

파이썬에서 조건문을 작성할 때는 if ~ elif ~ else 문을 이용한다.

elif 혹은 else 부분은 경우에 따라 사용하지 않아도 되며, 조건문이 여러 개 일 경우 elif를 여러 번 사용한다.

if 조건문 1:
	조건문 1이 True일 때 실행되는 코드
elif 조건문 2:
	조건문 1에 해당하지 않고, 조건문 2가 True일 때 실행되는 코드
else:
	위의 모든 조건문이 모두 True가 아닐 때 실행되는 코드
# 성적 구간에 따른 학점 정보 출력하기
# 성적이 90점 이상일 때의 학점은 A, 80점 ~ 89점일 땐 B, 70점 ~ 79점일 땐 C, 70점 미만일 땐 F
score = 85

if score >= 90:
	print("학점 : A")
elif score >= 80:	# if 문에 해당하지 않을 때 실행되므로 score < 90 and score >= 80 과 같은 의미.
	print("학점 : B")
elif score >= 70:
	print("학점 : C")
else:
	print("학점 : F")

'''
실행 결과
학점 : B
'''

조건문의 값이 참(True)이라고 해도, 아무것도 처리하고 싶지 않다면 pass 문을 이용할 수 있다.

코드를 작성하며 디버깅하는 과정에서 우선적으로 조건문의 형태만 만들어놓고 조건문을 처리하는 부분은 비워놓고 싶을 때 아래와 같이 작성하면 된다.

score = 95

if score >= 90:
	pass
else:
	print("학점 : F")

print('프로그램을 종료합니다.')

'''
실행결과
프로그램을 종료합니다.
'''

들여쓰기

조건문을 작성할 때는 코드의 블록(Block)을 들여쓰기로 설정하며, 들여쓰기가 같은 부분은 함께 실행한다.

score = 85

if score >= 70:
	print('성적이 70점 이상입니다.')
    if score >= 90:
    	print('성적이 우수합니다.')
else:	# score < 70 일 때 아래 코드들이 모두 실행됨. (들여쓰기가 같으므로 함께 실행)
	print('성적이 70점 미만입니다.')
    print('분발하세요.')

print('프로그램을 종료합니다.')	# 조건문과 상관없이 무조건 실행되는 부분

'''
실행 결과
성적이 70점 이상입니다.
프로그램을 종료합니다.
'''

파이썬에서 들여쓰기는 스페이스 바를 4번 입력하여 작성하거나, 탭을 사용하여 작성한다. (두 가지 방법 혼용하지 말 것!!)

파이썬 커뮤니티에서는 4개의 공백문자를 사용하는 것이 사실상의 표준이므로 이왕이면 띄어쓰기 4번으로 들여쓰는 습관을 들이기를 추천한다고 한다. (텍스트 대치가 필요해지는 순간이다...

간략하게 작성하기

실행문이 한 줄일 때

조건문에서 실행될 소스코드가 한 줄인 경우, 줄바꿈 없이 아래와 같이 간략하게 표현할 수 있다.

score = 85

if score >= 80: result = "Success"
else: result = "Fail"

조건부 표현식

조건부 표현식을 이용하면 if ~ else 문을 한 줄에 작성해 사용할 수 있다.

score = 85

result = "Success" if score >= 80 else "Fail"
print(result)	# Success

특히 조건부 표현식은 리스트에 있는 원소의 값을 변경해 또 다른 리스트를 만들고자 할 때 매우 간결하게 사용할 수 있다.

아래는 리스트에서 특정 원소의 값만을 없앨 때의 소스코드이다. 조건부 표현식을 이용하면 훨씬 간단히 작성할 수 있음을 알 수 있다.

# 일반적인 형태의 조건문 이용
a = [1, 2, 3, 4, 5, 5, 5]
remove_set = {3, 5}

for i in a:
	if i not in remove_set:
    	result.append(i)
        
print(result)	# [1, 2, 4]

# 조건부 표현식 이용
a = [1, 2, 3, 4, 5, 5, 5]
remove_set = {3, 5}

result = [i for i in a if i not in remove_set]	# 리스트 컴프리헨션

print(result)	# [1, 2, 4]

리스트 컴프리헨션에 관한 내용은 아래 포스팅 참조

2023.10.01 - [Programming language/Python] - [Python] 리스트 자료형 List data type

 

[Python] 리스트 자료형 List data type

이것이 취업을 위한 코딩 테스트다 with 파이썬 - 나동빈 저 APPENDIX A. 코딩 테스트를 위한 파이썬 문법 정리 내용 자료형 (데이터 타입, data type) 종류 수 (Number) 리스트 (List) 문자열 (String) 튜플 (Tupl

hyrmzz1.tistory.com

 

Comments