본문 바로가기

AI인공지능 by Python/1. 기초문법

[ AI 인공지능 ] ④ 기초함수 - 4 : 연산자2

7. 삼항 연산자

값1 if 조건식 else 값2

조건식 : 참 또는 거짓을 판별할 수 있는 식(bool타입)

만약 조건식이 참이라면 삼항 연산의 결과는 값1 만약 조건식이 거짓이라면 삼항 연산의 결과는 값2

'안녕' if True else 10
> '안녕

52 if False else 3.14
> 3.14

 

# 사용자에게 나이를 입력받아서 성인입니다 혹은 미성년자입니다 출력하기

age = int(input('나이 >> '))

print('성인입니다' if age > 19 else '미성년자입니다')

> 나이 >> 22

> 성인입니다

 

7-1. 삼항 연산자 심화

조건식 자리에는 bool타입이 오지 않아도 상관없다.대신 해석은 그 값을 bool 타입으로 바꾸었을 때 True인지 False인지로 판단하면 된다.

'값1' if 15 else '값2'
'값1' if 0 else '값2'

 

7-2. 삼항 연산자 예제

1. 사용자에게 정수 두 개를 입력받아서 두 정수 중 큰 수 출력하기 

입력예시  
  정수1 >> 25
  정수2 >> 23
출력예시
  둘  중 더 큰 수는 23입니다.
num1 = int(input('정수1 >> '))
num2 = int(input('정수2 >> '))

res1 = num1 if num1 > num2 else num2

print('둘 중 더 큰수는 ', res1 , '입니다.', sep = '')

> 정수1 >> 13

> 정수2 >> 4

둘 중 더 큰 수는 13입니다.

 

2. 키가 150이 넘거나 나이가 10살이 넘으면 탑승할 수 있는 놀이기구가 있다.

  사용자에게 키와 나이를 입력받고 탑승여부를 출력하시오

입력예시
   키 >> 160
  나이 >> 3
출력예시
  놀이기구에 탑승이 가능합니다.
height = int(input('키 >> ')) # float 으로도 가능
age = int(input('나이 >> '))

res2 = '가능' if height > 150 or age > 10 else '불가능'
 
print('놀이기구에 탑승이 ', res2, '합니다.', sep = '')

> 키 >> 180

> 나이 >> 7

> 놀이기구에 탑승이 가능합니다.

 

3. 나이별 요금표는 다음과 같다.

  10세 이상 30세 이하 : 1000원

  나머지 : 무료 

  사용자에게 나이를 입력받고 내야하는 요금을 출력하시오.

 입력예시
  나이 >> 15
출력예시
  당신이 내야하는 금액은 1000원입니다.

입력예시
  나이 >> 35
출력예시
  당신이 내야하는 금액은 무료입니다.
age = int(input('나이 >> '))

res3 = '1000원' if age >= 10 and age <= 30 else '무료'

print('당신이 내야하는 금액은 ', res3, '입니다', sep = '' )

> 나이 >> 33

> 당신이 내야하는 금액은 무료입니다.

 

4. 라면 20개씩 포장할 수 있는 상자가 있다.

사용자에게 라면의 개수를 입력받아서 필요한 상자의 개수를 출력하시오.

입력예시
  라면개수 >> 35
출력예시
  총 2상자가 필요합니다.

입력예시
  라면개수 >> 40
출력예시 
 총 2상자가 필요합니다.    

[ 1 ] 

num = int(input('라면개수 >> '))

res4 = num // 20 if num % 20 == 0 else num // 20 + 1

print('총 ', res4, '상자가 필요합니다.', sep = '')

> 라면개수 >> 64

> 총 4상자가 필요합니다.

 

[ 2 ]

num = int(input('라면개수 >> '))

res4 = num // 20 + 1 if num % 20  else num // 20 
# 0은 False로 해석된다.

print('총 ', res4, '상자가 필요합니다.', sep = '')

 

> 라면개수 >> 64

> 총 4상자가 필요합니다.

 

☑️ 두 수를 입력받아서 둘 중 더 큰 수 혹은 서로 같다고 출력하기

num1 = int(input('정수 >> '))
num2 = int(input('정수2 >> '))

num1 if num1 > num2 else num2 if num1 < num2 else '같다'

> 정수1 >> 1

> 정수2 >> 1

> '같다'