파이썬 문자입력 하는 방식의 최솟값이 구해지지 않아요

조회수 579회
n = str(input("콤마로 구분된 숫자 입력: "))
x = min(n)
print("최솟값은 %s 입니다. " %(x))

로 하고 숫자입력하니까 최솟값은 입니다 라고 뜨더라구요 n의 값을 인식 못하는 것 같아요

n = [1, 2, 3, 4, 5]
x = min(x)
print("최솟값은 %s 입니다. " %(x))

이런식으로 입력하면 잘 나오던데 뭐가 문제인 걸까요?

1 답변

  • 문자열을 숫자로 입력받으실 경우 n = '1, 2, 3, 4, 5' 와 같이 하나의 문자열이 됩니다.

    그리고 파이썬은 저 문자열을 각각의 숫자로 인식하지 않아요.

    그렇기 때문에 문자열에서 최솟값을 구하려고 해도 구해지지 않는 것입니다.

    만약 입력받은 숫자 중에서 최솟값을 구하고 싶으시다면 하나씩 입력받아서 이를 숫자로 바꾸시거나, 아래와 같은 작업을 거치시면 됩니다.

    >>> n = str(input("콤마로 구분된 숫자 입력: "))
    >>> n = list(map(lambda x: int(x), n.split(',')))
    >>> n
    [1, 2, 3, 4, 5]
    

    위 코드는 작성하신대로 콤마로 숫자를 구분하여 입력했을 경우에 동작합니다.

    • lambda는 어떨 때 사용하는 형식인가요? 알 수 없는 사용자 2020.6.23 20:58
    • lambda는 익명함수라고 해서 def로 따로 함수를 정의해서 사용할 필요 없이 그 순간에만 사용하고 없어지는 함수라고 생각하시면 됩니다. 자세한 사용법은 제가 설명드리는 것보다는 직접 찾아보시는것이 더 도움이 될 듯 합니다. HIAOAIH 2020.6.24 12:36
    • 감사합니다. 알 수 없는 사용자 2020.6.24 14:03

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

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

(ಠ_ಠ)
(ಠ‿ಠ)