프로그래머스 파이썬 기초 해석 :: 홀짝 구분하기 (한줄 if문)

 

프로그래머스 URL

https://school.programmers.co.kr/learn/courses/30/lessons/181944


프로그래머스 코딩테스트 카테고리 

코딩 기초 트레이닝

Day 2 출력, 연산

Lv.0 





문제 설명

자연수 n이 입력으로 주어졌을 때 만약 n이 짝수이면 "n is even"을, 홀수이면 "n is odd"를 출력하는 코드를 작성해 보세요.




문제 이해

1) if문으로 홀수 / 짝수 판별하기 

2) 문자열 포매팅을 활용해서 문자열을 출력하기

포매팅 방법은 3가지이다. ① % 기호를 활용한 포매팅, ② format함수 활용, ③ f string 사용

(각각에 대한 자세한 설명은 요기로 )



문제 풀이

난 평범하게 f string을 써서 풀었다.  
 
a = int(input())
if a % 2 == 0 : 
    print(f"{a} is even")
else: 
    print(f"{a} is odd")


한줄 if 문  + f string 

다른 사람들은 f string이랑, 한줄 if문을 써서 간결하게 작성한 걸보고, 한줄 if문법은 무엇인지 찾아봤다. 

Result  =  A  if  조건1  else  B  if  조건2  else  C

이는 조건 1이 True이면 Result는 A이고 
조건1이 False이고 조건 2가 True이면 Result는 B이고 
조건 1, 2 모두 False이면 Result가 C라는 뜻이다. 


이 문제에서는 홀수냐, 짝수냐 이기 때문에 이렇게 활용할 수 있다. 
num = 'even' if a % 2 == 0 else 'odd'


변수로 넣는것 자체가 시간을 조금 더 걸리게 하는 것이기 때문에, 변수를 만들지 않고 
f string의 {} 중괄호안에 넣어서 사용하면 좋다.



아래 방법은, f string을 두번 사용했다. 
 
a = int(input())
print(f"{a} is odd" if a % 2 else f"{a} is even")
if문이 성립하면 앞의 f string 문자열을 출력하고, else 문이 성립이 되면, 뒤에 있는 f string 문자열이 출력이 된다. 






나는 아래처럼 f string이 이렇게 유연할지 몰랐다..  
 
a = int(input())
print(f"{a} is {'even' if a % 2 == 0 else 'odd'}") 
큰 f string 안에서 한줄 if문이 적혀있는 것이다. 
print( f"{a} is {한줄 if문}" )



참고 - 한줄 함수 (lambda) 






------------------------


느낀점

경이롭다. 

한줄 if문, 한줄 함수 등 많던데,,  하나씩 알아가봐야겠다. 







댓글

이 블로그의 인기 게시물

[KT 에이블스쿨 - IT 트랜드] 국내외 AI 관련 규제

KT 에이블스쿨 : 6-7차 미니프로젝트 - 제안서 기반 솔류션 기획 및 설계

KT 에이블스쿨 : 클라우드 서비스 1일차 정리