[Python] 코딩 도장 - 정수와 소수 구별하기

Updated:

코딩 도장 사이트의 문제를 직접 풀어본 내용을 정리하여 올립니다.

코딩 도장에서 여러 문제를 확인할 수 있습니다.

난이도 순으로 차근차근 풀어보려 합니다.


[문제: 정수와 소수 구별하기] - Lv.1

프로그래머 X는 코딩을 하다가 문득, 수학 시간에 배운 정수와 소수를 구별하는 방법을 떠올렸다.

정수와 소수의 차이는 분수로 표현이 되느냐, 되지 않느냐에 따라 차이가 나기도 하며,

또한 파이 등 특정한 값을 나타내는 것에 의하여 소수인지 정수인지 판별이 나게 된다.

프로그래머 X는 입력값을 숫자를 입력하거나 문자를 입력하려고 하는데,

만약 숫자를 입력하였으면 그것이 정수인지, 소수인지 구별하는 프로그램을 짜보도록 하고,

만약 문자를 입력하였으면 숫자가 아니므로 math error를 표시하게 하라.

출처: https://codingdojang.com/scode/685?answer_mode=hide


[풀이]

import numpy as np

def f(x):
    if type(x) == int:
        print("정수")
    elif type(x) == float:
        print("소수")
    else:
        print("math error")

f(1)
f(np.pi)
f("문자")
정수
소수
math error

type()을 이용해서 if문으로 직관적으로 만들었다.


[추천 풀이]

def main(N):
    if N - int(N) == 0:
        print("정수")
    if N - int(N) != 0:
        print("소수")
try:
    N = input()
    N = float(N)
    main(N)
except ValueError:
    print("math error")
2.548
소수

이 분도 정수, 소수를 제외한 모든 경우를 math error 처리하였다.

다른 점은 try, except를 이용한 예외 처리를 사용한 점인데 input()을 써서 4/3 등으로 입력하면 무조건 math error이다.

Leave a comment