AI학습 5일차

이유진·2024년 2월 1일

--8.제어문(조건문).ipynb--

1.제어문

  • 프로그램의 흐름을 제어하는 문장
    • 조건문
    • 반복문

2. 조건문

2-1.if문

조건을 만드는 방법

비교(관계) 연산자

연산된 결과가 True, False로 나온다.

<,>,<=,>=,==.!=

print(10>5)
print(10==10)
print(10 != 10)

True or False로 결과가 나온다.

  • if문 기본 문법
if 조건식(결과가 True 또는 False가 나오는문장) :
  조건식이 True인 경우 실행할 문장

나이를 입력 받아 성인인지 아닌지 판단하는 프로그램

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

if age > 19 :
print('성인')

if문 안에 있는지 없는지는 같은선상인지 아닌지를 봐야한다

따라서 if 문과 같은 선상이 아니기때문에 밑에 문장은 True, False에 상관없이 출력되는 문장.

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

2-2.if-else문

if 조건식(결과가 True 도는 False가 나오는문장) :
  조건식이 True인 경우 실행할 문장
else :
  조건식이 False인 경우 실행할 문장

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

if age > 19 :
print('한잔 해')
else :
print('너 성인 아니잖아')

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

2-3.if ~ elif ~ else 문

if 조건식1 (결과가 True 또는 False가 나오는문장) :
  조건식이 True인 경우 실행할 문장
ellf 조건식2 :
  조건식2가 True인 경우 실행할 문장
ellf 조건식3 :
  조건식3가 True인 경우 실행할 문장
ellf 조건식4 :
  조건식4가 True인 경우 실행할 문장
...
else :
  조건식 모두가 False인 경우 실행할 문장
  • elis에 적은 조건식은 위에 조건식이 False일 때만 검사한다.
  • 즉, 위에 조건식이 True라면 아래 조건들은 검사조차 하지않는다.
  • 위에 조건식의 결과에 상관없이 전부 다 검사하고 싶다면 elif 대신 if를 써야한다.

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

if age >= 60 :
print('60대 이상')
elif age >= 50 :
print('50대')
elif age >= 40 :
print('40대')
elif age >= 30 :
print('30대')
elif age >= 20 :
print('20대')
else :
print('아직 성인이 아닙니다.')

if age >= 60 :
print('60대 이상')
elif age >= 50 :
print('50대')
elif age >= 40 :
print('40대')
elif age >= 30 :
print('30대')
elif age >= 20 :
print('20대')
else :
print('아직 성인이 아닙니다.')

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

2.4 if문 한 줄로 표현하기 (like 삼항연산자 참고)

  • (True일 때 코드) if 조건식 else(False일 때 코드)
  • 조건식이 하나만 있을 때 한 줄만에 끝낼 수 있다.
  • 만약에, 실행 코드 부분에 값이 들어가 있다면 if문 전체를 하나의 값으로도 볼 수 있다.

data = int(input('숫자를 입력하세요 : '))

print('입력한 숫자는 5보다 크거나 같다.') if data >= 5 else print('입력한 숫자는 5보다 작다.')

print('입력한 숫자는 5보다 크다.') if data > 5 else print('입력한 숫자는 5다.') if data == 5 else print('입력한 숫자는 5보다 작다.')

result = '크다' if data > 5 else 1 if data == 5 else '작다'
print(result)

result2 = print('크다') if data > 5 else 1 if data == 5 else print('작다')
print(result2) # print자체는 반환하는 값은 없기때문에 None값이 출력된다.

문제

  • 국어점수, 영어점수, 수학점수를 입력 받아 촐점, 평균, 학점을 구하는 프로그램을 작성해보자.
단, 학점은 평균 기준이며
90점 이상은 A학점,
80점 이상은 B학점,
70점 이상은 C학점,
60점 이상은 D학점,
나머지는 F학점으로 한다.

kor, eng, math = map(int,input('국어점수, 영어점수, 수학점수를 입력하시오.(띄어쓰기 포함)').split(' '))

sum = kor + eng + math
avg = sum / 3

if avg >= 90:
hak = 'A'
elif avg >= 80 :
hak = 'B'
elif avg >= 70 :
hak = 'C'
elif avg >= 60 :
hak = 'B'
else:
hak = 'F'

print(f'총점은 {sum}점 이고, 평균은 {avg}점 이고, 학점은 {hak}입니다')

문제 2.

  • 숫자를 입력 받아 2의 배수인지, 3의 배수인지, 아니면 2,3의 배수가 모두 아닌지를 판별하는 프로그램 작성

num = int(input('판별할 숫자를 입력하세요 : '))

if num % 2 == 0 and num % 3 ==0 :
print('2의 배수이며 3의 배수입니다.')
elif num % 2 == 0 :
print('2의 배수 입니다.')
elif num % 3 == 0 :
print('3의 배수입니다.')
else:
print('2의 배수도 3의 배수도 아닙니다.')

2-5.논리 연산자(and)

  • 양쪽 두 조건의 값이 모두 True인 경우 결과가 True가 되는 연산자
AB결과
TrueTrueTrue
TrueFalseFalse
FalseTrueFalse
FalseFalseFalse

관리자 로그인 프로그램 만들기

아이디 : admin, 비밀번호 : 1234

user_id = input('아이디 : ')
user_pw = input('비밀번호 : ')

if user_id == 'admin' and user_pw == '1234' :
print('관리자가 로그인 하였습니다')
else :
print('아이디와 비밀번호를 다시 확인하세요.')

2-6.논리 연산자(or)

  • 양쪽 두 조건의 값이 하나라도 True인 경우 결과가 True가 되는 연산자
AB결과
TrueTrueTrue
TrueFalseTrue
FalseTrueTrue
FalseFalseFalse

주민등록번호로 성별 판별

serialNo = input('주민등록번호 13자리를 -없이 입력하세요!')
if serialNo[6] == '1' or serialNo[6] == '3' :
print('남자')
else :
print('여자')

참고

  • 연산자 우선순위

    • 최우선 연산자 : ()
    • 산술 연산자 : +, -, *, /, ...
    • 관계 연산자 : <,>,<=,>=,==,!=, ...
    • 논리 연산자 : and, or
    • 대입 연산자 : =
  • 결합성

    • 같은 우선순위의 연산자들은 왼쪽부터 실행한다.
profile
독해지자

0개의 댓글