logo태영이의 공부방

[파이썬 기초 100제] 11강 조건/선택 실행 구조

2022년 02월 04일

문제 65

세 정수 a, b, c가 입력되었을 때, 짝수만 출력해보자.

TIP

조건문 이용

filter() 이용

'*(asterisk)' 이용

익명함수 lambda 이용

풀이

# 방법 1
a, b, c = map(int, input().split())
if not a%2: print(a)
if not b%2: print(b)
if not c%2: print(c)
 
# 방법 2
a, b, c = map(int, input().split())
print(*(filter(lambda num: not(num % 2), [a, b, c])))
# 조건식 not(num % 2)의 num에 a, b, c가 차례대로 들어가고 결과가 참인 값만 반환된다.
# filter()는 filter 타입으로 반환되기 때문에 리스트나 튜플에 넣어주어야 한다.
# *를 사용하면 대괄호나 괄호 없이 리스트나 튜플 안의 값들만 출력할 수 있다.
 
print(list(filter(lambda num: not(num % 2), [a, b, c])))
# 입력 : 1 2 3, 출력 : [2]
print(*(filter(lambda num: not(num % 2), [a, b, c])))
# 입력 : 1 2 3, 출력 : 2
 
# 나의 답
a = map(int, input().split())
for i in a:
  if not(i % 2):
    print(i, end=' ')

내가 쓴 답의 경우 숫자를 3개만 입력 받는 것이 아니기 때문에 변수 3개에 나눠 받는 것이 좋아보인다.

문제 66

세 정수 a, b, c가 입력되었을 때, 짝(even)/홀(odd)을 출력해보자.

TIP

map() 함수 배우기

풀이

a, b, c = map(int, input().split())
 
# 방법 1
print(*(filter(lambda num: 'odd' if num % 2 else 'even', [a, b, c])))
 
# 방법 2
print('odd' if a % 2 else 'even')
print(b % 2 and 'odd' or 'even')
print(['even', 'odd'][c % 2])

문제 67

정수 1개가 입력되었을 때, 음(minus)/양(plus)과 짝(even)/홀(odd)을 출력해보자.

입력 : -4

출력 :

minus

even

풀이

a = int(input())
print('minus' if a < 0 else 'plus')
print('odd' if a % 2 else 'even')

and-or를 사용하는 방법도 있다.

문제 68

점수(정수, 0 ~ 100)를 입력받아 평가를 출력해보자.

평가 기준

점수 범위평가
90 ~ 100A
70 ~ 89B
40 ~ 69C
0 ~ 39D

로 평가되어야 한다.

TIP

if-elif-else를 이용한다.

풀이

a = int(input())
if a >= 90:
  print('A')
elif a >= 70:
  print('B')
elif a >= 40:
  print('C')
else:
  print('D')

문제 69

평가를 문자(A, B, C, D, ...)로 입력받아 내용을 다르게 출력해보자.

평가내용
Abest!!!
Bgood!!
Crun!
Dslowly~
나머지 문자들what?

풀이

a = input()
if a == 'A':
  print('best!!!')
elif a == 'B':
  print('good!!')
elif a == 'C':
  print('run!')
elif a == 'D':
  print('slowly~')
else:
  print('what?')

문제 70

월이 입력될 때 계절 이름이 출력되도록 해보자.

계절 이름
12, 1, 2winter
3, 4, 5spring
6, 7, 8summer
9, 10, 11fall

풀이

a = int(input())
 
# 방법 1
if a==12 or a==1 or a==2:
  print('winter')
elif a==3 or a==4 or a==5:
  print('spring')
elif a==6 or a==7 or a==8:
  print('summer')
else:
  print('fall')
 
# 방법 2
if a in [12,1,2]:
  print('winter')
elif a in [3,4,5]:
  print('spring')
elif a in [6,7,8]:
  print('summer')
else:
  print('fall')
 
# 나의 답
if a >= 3 and a <= 5:
  print('spring')
elif a >= 6 and a <= 8:
  print('summer')
elif a >= 9 and a <= 11:
  print('fall')
else:
  print('winter')

내가 쓴 답의 경우 15가 들어와도 winter이 출력된다. in을 이용하거나 or과 조건식을 이용해 범위를 1부터 12까지 정해주어야 한다.

이 게시물은 우리밋_woorimIT님의 유튜브를 참고하였습니다.