파이썬 기초 - 조건문

이상해씨·2021년 9월 15일
0
post-custom-banner

◾조건문(if문)

  • 제어문 : 조건문, 반복문
  • 조건문 : 특정 조건에 따라 프로그램 분기
    • if문 : 단일 조건
    • if ~ else문 : 양자택일
    • if ~ elif문 : 다자택일(다중 조건)
  • if문 : 단일 조건
    • 콜론 ':' : 조건식이 끝나고 실행문이 시작됨을 알려주는 역할
    • 들여쓰기(탭) : if문의 실행문임을 표시하기 위해 들여쓰기를 하며, 이 부분을 코드 블럭이라 한다.
    • 들여쓰기를 해제하면 if문의 실행문이 종료된다.

      if 조건식 :
      (들여쓰기)실행문

if 10 > 5:
    print('10은 5보다 크다.')
    print('다른 실행문!')
    
num1 = 10; num2 = 20
if num1 <= num2 :
    print('num1 <= num2')

◾양자택일 조건문(if~else문)

◽if~else문 : 양자택일 조건문

  • 조건문의 결과에 따라 if의 코드 블럭 또는 else의 코드 블럭 실행

    if 조건식 :
    (들여쓰기)실행문
    else:
    (들여쓰기)실행문

  • 실행문은 필수로 작성되어야하지만 pass 키워드로 비워두고 이후에 채울 수 있다.
passScore = 80
myScore = int(input('점수 입력 : '))

if myScore >= passScore:
    print('PASS!!')
else:
    print('FAIL!!')
    
# len() : 문자열의 길이
messageString = 'fnkasnflksafklsanfklsank'
if len(messageString) >= 500:
    pass
else :
    pass

◽if~else문과 조건식

조건식(삼항 연산자) : A if 조건문 else B

  • 조건식 결과에 따른 실행
minAblePoint = 1000
userPoint = int(input('고객 포인트 입력 : '))
print('포인트 사용 가능') if userPoint >= minAblePoint else print('포인트 사용 불가능')
  • 조건식 결과를 변수에 할당
minAblePoint = 1000
userPoint = int(input('고객 포인트 입력 : '))
result = '가능' if userPoint >= minAblePoint else '불가능'
print('포인트 사용 가능 여부 : {}'.format(result))

if~else문과 조건식

  • 조건식 ➡ if~else문 : 모든 조건식은 if~else문으로 변경가능
minAblePoint = 1000
userPoint = int(input('고객 포인트 입력 : '))

if userPoint >= minAblePoint :
    print('포인트 사용 가능')
else:
    print('포인트 사용 불가능')

if userPoint >= minAblePoint :
    result = '가능'
else:
    result = '불가능'
print('포인트 사용 가능 여부 : {}'.format(result))
  • if~else문 ➡ 조건식 : 모든 if~else문을 조건식으로 변경하기 어렵다.
    • 코드 블럭상에서 한 가지 동작이 아닌 다양한 동작이 일어날 경우 조건식으로 변경하기 어렵다
minAblePoint = 1000
userPoint = int(input('고객 포인트 입력 : '))

if userPoint >= minAblePoint :
    result = '가능'
else:
    result = '불가능'
    ##### 이 부분을 조건식으로 변경하기 어렵다
    lackPoint = minAblePoint - userPoint
    print('포인트가 {}부족합니다.'.format(lackPoint))
    ##### 이 부분을 조건식으로 변경하기 어렵다
print('포인트 사용 가능 여부 : {}'.format(result))

◾다자택일 조건문(if~elif문)

◽if~elif문 : 다자택일 조건문

  • 여러 가지 조건식 결과에 따라 실행문이 결정

    if 조건식 :
    (들여쓰기)실행문
    elif 조건식 :
    (들여쓰기)실행문
    else :
    (들여쓰기)실행문

  • 여러 조건 중 만족하는 1가지만을 실행한다.
  • 모든 조건식을 만족하지 않는다면 else문을 실행하지만 else는 필수가 아니다.
# if~elif문
exampleScore = int(input('시험 성적 : '))
grade = ''

if exampleScore >= 90:
    grade = 'A'
elif exampleScore >=80:
    grade = 'B'
elif exampleScore >=70:
    grade = 'C'
elif exampleScore >=60:
    grade = 'D'
else :
    grade = 'F'    

print('성적 : {} \t 학점 : {}'.format(exampleScore, grade))

◽다자택일 조건문 주의점

  • 조건식 순서가 중요
    • 조건을 위에서부터 순서대로 진행하며 검사하기 때문에 순서를 알맞게 배치해야한다.
# 성적 출력을 아래와 같이 진행하면 A, B 학점이 나오지않게 된다.
exampleScore = int(input('시험 성적 : '))
grade = ''

if exampleScore >= 70:
    grade = 'C'
elif exampleScore >=90:
    grade = 'A'
elif exampleScore >=80:
    grade = 'B'
elif exampleScore >=60:
    grade = 'D'
else :
    grade = 'F'    

print('성적 : {} \t 학점 : {}'.format(exampleScore, grade))
  • 조건 범위 명시
    • 정확하게 조건을 명시하면 순서와 상관없이 진행될 수 있다.
# 성적 출력을 아래와 같이 진행하면 성적이 제대로 출려된다.
exampleScore = int(input('시험 성적 : '))
grade = ''

if exampleScore >= 70 and exampleScore < 80:
    grade = 'C'
elif exampleScore >=90:
    grade = 'A'
elif exampleScore >=80 and exampleScore < 90:
    grade = 'B'
elif exampleScore >=60 and exampleScore < 70:
    grade = 'D'
else :
    grade = 'F'    

print('성적 : {} \t 학점 : {}'.format(exampleScore, grade))

◾중첩 조건문

  • 조건문 안에 또 다른 조건문이 있는 경우
  if 조건문 :
      if 조건문 :
        if 조건문 : 
  • 일반적으로 2단계, 3단계의 조건문을 사용하지 않는다.
    • 코드를 판독하는 것이 어려워지기 때문에 너무 많이 중첩시키지는 않는다.
# 중첩 조건문
exampleScore = int(input('시험 성적 : '))
grade = ''

if exampleScore < 60:
    print('재시험 대상입니다.')
else :
    if exampleScore >= 90:
        grade = 'A'
    elif exampleScore >=80:
        grade = 'B'
    elif exampleScore >=70:
        grade = 'C'
    elif exampleScore >=60:
        grade = 'D'
    print('성적 : {} \t 학점 : {}'.format(exampleScore, grade))
profile
후라이드 치킨
post-custom-banner

0개의 댓글