if else문 간단한 질문입니다.

조회수 631회
age = int(input("나이를 입력하시오"))
if age >= 20:
        print('you are adult')
elif age >=10 or age < 20:
    print('you are adolescent')
elif age < 10:
    print('you are baby')

이렇게 코드 짰는데 마지막 코드에서 10 이하를 넣어도 'you are adolescent' 가 출력되네요.

문제는 다음과 같습니다.

나이를 입력받아 20살이 넘으면 'you are adult' 를 출력해주고, 10살 이상 20살 미만은 'you are adolescent'를 10살 미만은 'you are baby'를 출력해주는 프로그램을 작성해 보자.

  • 이정도 문제는 밤을 새서라도 해결해야 실력이 늡니다. 정영훈 2020.12.8 21:18
  • 첫번째 elif 줄에서 사용된 논리가 잘못되었습니다. 플라잉폭스 2020.12.9 10:32

1 답변

  • 매우 간단한 문제이지만

    elif age >=10 or age < 20:
        print('you are adolescent')
    

    이 부분에서 or을 사용하게 되면 age < 20, age>=10를 만족하는 모든것이 다 포함이 되기 때문에 실수 전체를 말하게 되고,

    if age >= 20:
            print('you are adult')
    

    에 해당되지 않는 모든 실수가 해당될 수 밖에 없습니다. 따라서 두 조건을 동시에 만족하도록 orand로 바꿔주면 됩니다.

    elif age >=10 and age < 20:
        print('you are adolescent')
    
    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)