본문 바로가기
인공지능/파이썬 기초

제어문 - 조건문

by hyunji00pj 2024. 9. 29.

KDT_4기 파이썬 기초 0925(1)

2024.09.25 수업 내용 복습일기 첫번째

 

오늘은 제어문 중 조건문에 대해 알아보자

1. 조건문

조건문은 코드의 실행 흐름을 제어하기 위해 사용하는 구문입니다. 이 조건문은 주어진 조건이 참인지 거짓인지에 따라 다른 코드를 실행하게 합니다.

 

2. if 문

가장 기본적인 조건문입니다. 특정 조건이 참(True)일 경우에만 해당 블록 내의 코드가 실행됩니다.

 

if 조건:
    실행할 코드

 

여기에서 조건은 True 또는 False 평가될  있는 표현식이어야 합니다. 조건이 True 평가되면 if  바로 아래의 코드 블록이 실행됩니다. 그렇지 않으면  코드 블록은 건너뜁니다.

if True:
  print('결과는 참입니다')
print('프로그램을 종료함')

if False:
  print('결과는 참입니다')
print('프로그램을 종료함')

if '안녕':
  print('결과는 참입니다')
print('프로그램을 종료함')

 

값이 없으면  파이썬은 False값을 가지기 때문에 if문 안의 문장을 실행하지 않음

if '': #콜론의 역할 :다음 문장을 실행할지 말지 결정해주는 키워드
  print('결과는 참입니다')
print('프로그램을 종료함')

age = int(input('나이를 입력하세요'))
if age > 19:
  print('성인입니다')
print('입력한 나이:',age)

age = int(input('나이를 입력하세요'))
if age > 19:
  print('성인입니다')
  print('넷플릭스 성인영화를 감상할 수 있어요')
print('입력한 나이:',age)

3. else 문

else는 파이썬의 조건문 구조에서 if와 elif 조건들이 모두 거짓으로 평가될 경우 실행되는 부분을 정의하는 데 사용됩니다. else는 선택적으로 사용될 수 있으며, 그 자체로는 어떤 조건을 갖지 않습니다. 다시 말해, else 블록은 위의 if와 elif 조건들이 모두 만족되지 않는 경우에만 실행됩니다.

 

if 조건1:
    코드 블록1
elif 조건2:
    코드 블록2
else:
    코드 블록3

 

age = int(input('나이를 입력하세요: '))

if age > 19:
    print('성인입니다')
    print('넷플릭스 성인영화를 감상할 수 있어요')
else:
    print('미성년입니다')
    print('디즈니플러스를 보세요')

print('입력한 나이: ', age)

4. elif 문

elif는 if-else 구조에서 추가적인 조건을 검사하기 위해 사용되는 키워드입니다. elif는 "else if"의 줄임말이며, 주어진 여러 조건 중에서 하나만 참일 때 실행되는 코드 블록을 정의합니다.

if 조건1:
    코드 블록1
elif 조건2:
    코드 블록2
elif 조건3:
    코드 블록3
else:
    코드 블록4
  • elif는 if 없이 단독으로 사용될 수 없습니다.
  • elif는 필요에 따라 여러 번 사용될 수 있습니다.
  • else는 선택적입니다. 사용될 경우, 항상 if나 elif 뒤에 나타나야 합니다.

elif를 사용함으로써 여러 조건을 순차적으로 검사하고, 해당 조건에 따라 다른 행동을 취할 수 있습니다. 이는 코드의 가독성을 높이고, 조건의 우선순위를 명확하게 만들어 줍니다.

 

age = (int(input('나이를 입력:')))

if age > 19:
  print('성인입니다')
elif age > 14:
  print('청소년입니다')
elif age > 6:
  print('어린이입니다')
elif age > 0:
  print('유아입니다')

print('입력한 나이: ', age)

age = (int(input('나이를 입력:')))

if age > 19:
  print('성인입니다')
elif age > 14:
  print('청소년입니다')
elif age > 6:
  print('어린이입니다')
elif age > 0:
  print('유아입니다')
else:
  print('다시 입력해 주세요')

print('입력한 나이: ', age)

문제1

아래와 같은 조건을 만족하는 로그인 프로그램을 만들어보자

  • 아이디를 입력하세요: 아이디입력
  • 비밀번호를 입력하세요: 비밀번호 입력
  • 결과는 "로그인 되었습니다" or "아이디 또는 비밀번호를 확인하세요" 출력
  • 단 아이디: apple, 비밀번호: 1234 인 경우 "로그인 성공!"
id = (input('아이디를 입력하세요:'))
pw = (input('비밀번호를 입력하세요:'))

if id == 'apple' and  pw == '1234':
  print('로그인 되었습니다')
else:
  print('아이디 또는 비밀번호를 확인하세요')

elif를 사용하여 아이디와 비밀번호중 무엇이 틀렸는지 알려줄 수 있도록 만들어 보았다

id = (input('아이디를 입력하세요:'))
pw = (input('비밀번호를 입력하세요:'))

if id == 'apple' and  pw == '1234':
  print('로그인 되었습니다')
elif id != 'apple':
  print('아이디를 확인하세요')
elif pw != '1234':
  print('비밀번호를 확인하세요')
else:
  print('회원가입 여부를 확인하세요')

문제2.

주민등록 번호를 입력받아 성별을 판별하는 프로그램을 만들어보자

  • 주민등록번호를 입력하세요: 주민등록번호 입력
  • 결과는 "남자" or "여자"라고 출력
  • 1,3,5,7,9는 남자 2,4,6,8,0은 여자라고 함
  • 예) 주민번호가 다음 0010113068518과 같다면 7번째 숫자가 성별임
id = input('주민등록번호 13자리를 -없이 입력하세요:')
print(id)

if int(id[6]) % 2 == 1:
  print('남자')
else:
  print('여자')

문제 3

  • 국어점수,영어점수,수학점수를 입력받아 총점,평균,학점을 구하는 프로그램을 작성
  • 단 입력방식은 국어/영어/수학 형태로 입력 (예: 100/70/85)하며 학점을 평균을 기준으로 90점이상 A 80점 이상 B 70점이상 C 60점이상 D 나머지는 F라고함
kor,eng,math = input('국어/영어/수학 점수를 입력하세요:').split('/')
print('국어점수 :',kor)
print('영어점수 :',eng)
print('수학점수 :',math)
print('총점:',int(kor)+int(eng)+int(math))
ave = (int(kor)+int(eng)+int(math))/3
print('평균:',ave)
if ave >= 90:
  print('학점 A')
elif ave >= 80:
  print('학점 B')
elif ave >= 70:
  print('학점 C')
elif ave >= 60:
  print('학점 D')
else:
  print('학점 F')

 변수와  f - string을 사용하여 좀 더 간결하게 코드를 작성해 보았다

kor,eng,math = input('국어/영어/수학 점수를 입력하세요:').split('/')
print('국어점수 :',kor)
print('영어점수 :',eng)
print('수학점수 :',math)
tot = int(kor)+int(eng)+int(math)
ave = tot/3

hak = 'F'
if ave >= 90:
  hak = 'A'
elif ave >= 80:
  hak = 'B'
elif ave >= 70:
  hak = 'C'
elif ave >= 60:
  hak = 'D'


print(f'총점:{ave}')
print('평균{:.2f}'.format(ave))
print(f'학점:{hak}')

 

성격 유형 테스트 예제

print('성격 유형 테스트에 오신걸 환영합니다')

answer1 = input('1.다른 사람과 함께 있는것을 좋아하나요? (y/n):').strip().lower()

#첫번째 질문 : 외향적, 내향적

if answer1 == 'y':
  #두번재 질문
  answer2 = input('새로운 사람을 만나는 것이 즐거운가요? (y/n):').strip().lower()
  if answer2 == 'y':
    answer3 = input('많은 사람과 함께 하는것을 선호하나요? (y/n):').strip().lower()
    if answer3 == 'y':
      personality_type = '외향적이고 사교적인 성격입니다'
    else:
      personality_type = '외향적이고 신중한 성격입니다'
  else:
    personality_type = '외향적이고 안정을 추구하는 성격입니다'

#내향적
else:
  answer4 = input('혼자 있는 것이 즐거운가요? (y/n):').strip().lower()
  if answer4 == 'y':
    personality_type = '내향적이고 우울한 성격입니다'
  else:
    personality_type = '내향적이고 밝은 성격입니다'


print(f'당신의 성격 유형: {personality_type}')

과제

중복 if문을 사용하여 위 예제와 비슷한 프로그램을 자유롭게 작성

print('MBTI 성격 유형 테스트에 오신걸 환영합니다')
print('당신은 P 일까요 J 일까요?')
print('테스트 시작')

answer1 = input('여행 갈때 즉흥적인 편인가요? (y/n):').strip().lower()

# 질문 : P스타일

if answer1 == 'y':
  #두번재 질문
  answer2 = input('과제가 있을 시 최대한 미루는 편인가요? (y/n):').strip().lower()
  if answer2 == 'y':
    answer3 = input('청소를 하는 중간에 자꾸 다른 일에 빠지나요? (y/n):').strip().lower()
    if answer3 == 'y':
          answer4 = input('과제를 할 때에 과정을 중시하는 편인가요? (y/n):').strip().lower()
          if answer4 == 'y':
            MBTI_type = '당신의 성격은 P입니다'
          else:
            MBTI_type = '당신의 성격은 J입니다'
    else:
      MBTI_type = '당신의 성격은 J입니다'
  else:
    MBTI_type = '당신의 성격은 J입니다'
else:
  MBTI_type = '당신의 성격은 J입니다'


print(f'당신의 성격 유형: {MBTI_type}')

5. 조건부 표현식(Conditional Expression)

조건부 표현식은 파이썬에서 삼항연산자라고도 불립니다. 간단한 if-else 구문을 더 간결하게 표현할 수 있는 방법을 제공합니다.

 

조건이 참인 경우 값 if condition else 조건이 거짓인 경우 값
  • 삼항 연산자는 코드를 간결하게 만들어주지만, 너무 복잡한 조건이나 연산을 포함하면 코드의 가독성이 떨어질 수 있습니다. 따라서 적절한 상황에서만 사용하는 것이 좋습니다.
  • 여러 삼항 연산자를 중첩하여 사용할  있지만, 코드의 가독성이 떨어지므로 권장하지 않습니다.
num = int(input('정수를 입력하세요: '))

if num % 2 == 0:
    print('짝수')
else:
    print('짝수')

num = int(input('정수를 입력하세요: '))

print('짝수') if num % 2 == 0 else print('홀수')

 

age = (int(input('나이를 입력:')))

if age > 19:
  print('성인입니다')
elif age > 14:
  print('청소년입니다')
elif age > 6:
  print('어린이입니다')
elif age > 0:
  print('유아입니다')
else:
  print('다시 입력해 주세요')

print('입력한 나이: ', age)

위의 예제를 조건부 표현식을 이용하여 코드를 만들어 보았다

age = (int(input('나이를 입력:')))

print('성인입니다') if age > 19 else print('청소년입니다') if age > 14 else print('어린이입니다') if age > 6 else print('유아입니다') if age > 0 else print ('다시 입력해 주세요')

print(f'입력한 나이:{age}')

 

'인공지능 > 파이썬 기초' 카테고리의 다른 글

컬렉션과 반복문 컴프리헨션  (0) 2024.09.29
제어문-반복문  (0) 2024.09.29
연산자  (0) 2024.09.29
컬렉션 타입- 딕셔너리  (2) 2024.09.26
파이썬 컬렉션 타입 - 세트  (0) 2024.09.26