SW/Python

[Python 문법] 조건문

ahhyeon 2023. 3. 7. 16:17

6. 조건문

  • 조건문은 프로그램의 흐름을 제어하는 문법
  • 조건문을 이용해 조건에 따라서 프로그램의 로직을 설정함

a = 2023
if a >= 2014:
  print("a >= 2014")  // a >= 2014

if a >= 0:
  print("a >= 0")     // a >= 0

[참고] 들여쓰기

  • 파이썬에서는 코드의 블록(Block)을 들여쓰기(Indent)로 지정함
  • 탭을 사용 또는 공백 문자(space)를 여러 번 사용
  • 파이썬 표준 가이드라인 설정 : 4개의 공백의 문자 사용
score = 80

if score >= 60:
  print('합격 커트라인은 60점 이상입니다.')
  if score >= 90:
    print('우수한 성적으로 합격하셨습니다.')
else:
  print('60점 미만으로 불합격입니다.')
  print('다음 회차에 도전해주세요')

print('창을 닫아주세요.')  # 마지막 print 구문 무조건 실행되는 것을 확인

6-1. 조건문의 기본 형태

  • 조건문의 기본적인 형태는 if ~ elif ~ else
    • 조건문을 사용할 때 elif 혹은 else 부분은 경우에 따라 사용하지 않아도 됨

if 조건문의 기본형(1단계)

if 조건:
 → 명령문

#해석
만약 조건이 참이라면
(들여쓰기 된)명령문을 실행해줘!

if 비밀번호 일치:
→ 환영의 메시지 출력

if 조건문의 표준형(2단계)

if 조건:
→ 명령문A
else:
→ 명령문B

#해석
만약 조건이 참이라면 명령문A를
그렇지 않다면 명령문B를 실행해줘!

if 비밀번호 일치:
→ 환영의 메시지 출력
else:
→ 틀렸다는 메시지 출력 

if 조건문의 확장형(3단계)

if 조건1:
   → 명령문A
elif 조건2:
   → 명령문B
else 조건3:
   → 명령문C

# 해석
만약 조건1이 참이라면 명령문A를
그렇지 않다면 조건2가 참이라면 명령문B를
모든 조건에 해당없다면 명령문 C를 실행해줘!

[연습]

if 조건문 1:
  조건문 1이 True일 때 실행되는 코드

elif 조건문 2:
  조건문 1에 해당하지 않고, 조건문 2가 True일 때 실행되는 코드

else:
  위의 모든 조건문이 모두 True 값이 아닐 때 실행되는 코드
a = -2023

if a >= 0:
  print("a >= 0")

elif a >= -5:
  print("0 > a >= -5")

else:
  print("-5 > a")
score = 55

if score >= 60:
  print("점수 : A")
  
elif score >= 50:
    print("점수 : B")
elif score >= 40:
  print("점수 : C")
else:
  print("점수 : 과락")

6-2. 비교 연산자

  • 특정한 두 값을 비교할 때 사용
    • 단, 대입 연산자(=)와 같음 연산자(==)의 차이점에 유의할것

6-3. 논리 연산자

논리 값(True/False) 사이의 연산을 수행할 때 사용

# 논리 연산자로 or를 사용될 경우 Yes를 출력
if True or False:
  print('Yes')

# and가 논리 연산자로 사용될 경우 아무것도 출력안됨
if True and False:
  print('Yes')
a = 10

if a <= 20 and a >= 0:
  print("Yes")

6-4. 기타 연산자

  • 파이썬에서는 다수의 데이터를 담는 자료형을 위해 in 연산자와 not in 연산자 제공함
    • 리스트, 튜플, 문자열, 딕셔너리 모두 사용 가능

6-5. Pass 키워드

  • 파이썬에서는 아무것도 처리하고 싶지 않을 경우 pass 키워드 사용함
  • ex) 디버깅 과정에서 조건문 형태만 만듬 -> 조건문을 처리 블럭은 비워놓고 싶을 경우
score = 60

if score >= 40:
  pass  # 추후에 작성할 소스코드
else:
  print('40점 미만으로 과락입니다.')

print('다음 기회에 도전해주세요')

6-6. 조건문의 간소화

  • 조건문에서 실행될 소스코드가 한 줄일 경우, 굳이 줄 바꿈을 하지 않고도 간략하게 표현가능
score = 60

if score >= 40: result = "Win"
else: result = "Lose"

print(result)
  • 조건부 표현식(Conditional Expression)은 if ~ else문을 한줄에 작성
score = 60
result = "Win" if score >= 40 else "Lose"

print(result)

6-7. 조건문 내에서의 부등식

  • 파이썬은 조건문 안에서 수학의 부등식을 그대로 사용 가능함
  • ex) x > 20 and x < 30과 20 < x < 30 은 같은 결과를 반환함
// 코드1

x = 23
if x > 20 and x < 30:
  print('x는 20 이상 30 미만의 수')

// 코드2

x = 23
if 20 < x < 30:
  print("x는 20 이상 30 미만의 수")

[실습]

  • 로그인 프로그램 만들기 : 아이디와 비밀번호 입력
    • 문제정의: 아이디와 비밀번호를 맞췄는지, 비밀번호만 틀렸는지 확인하는 프로그램
문제해결과정 절차적으로 설명해보기

0) 아이디, 비밀번호가 저장되어 있음
1) 아이디, 비밀번호 입력 받기
2) 아이디, 비밀번호 일치 여부 확인
3) 상황에 맞는 메시지 출력
id = 'welcome2023'
pw = 'nice2'
input_id = input('아이디를 입력하세요: ')
input_pw = input('비밀번호를 입력하세요: ')

if id == input_id and pw == input_pw:
  print("로그인완료!")
elif id == input_id and pw != input_pw:
  print('비밀번호가 틀렸습니다.')
else:
  print('로그인실패!')