파이썬(Python)

[ Basic ] 파이썬 Input() 함수, 사용자 입력 다루기와 유용한 예제들

카루루1007 2023. 12. 2. 11:43
728x90
반응형
SMALL

[ 들어가며 ]

 

파이썬의 input() 함수는 

사용자로부터 키보드를 통해 

데이터를 입력받을 때 사용되는

내장함수입니다.

 

input() 함수

사용자가 키보드를 통해 입력한 데이터를

문자열로 반환합니다.

 

[ 기본적인 사용법 ]

 

input() 함수의 기본적인 사용법은 다음과 같습니다.

변수 = input("메세지")

 

변수input() 함수를 통해 받은 값을 저장하는 곳이고

메시지는 input() 함수 사용 시 사용자에게 보여줄 표시할 내용입니다.

 

다음은 input() 함수의 간단한 코드입니다.

name = input("이름을 입력하세요 : ")
print(name)

 

input() 함수를 통해 이름을 입력받고

그 값을 name이라는 변수에 넣은 다음

print() 함수를 통해 출력하는 코드입니다.

 

input() 함수의 반환값은 항상 문자열입니다.

즉, 제가 [ 숫자 1을 입력 ]했을 때

동일한 방법으로 출력하면

눈에 보이는 것은 [ 1 ]이지만

실질적으로 파이썬은 문자로 인식을 합니다.

name = input("숫자를 입력하세요 : ")
print(name)
print(type(name))

위 코드의 결과는 다음과 같습니다.

빨간색 네모 부분을 보시면 [ str ]이라고 되어 있습니다.

 

조금 더 직관적으로 보기 위해 다른 코드를 보겠습니다.

name = input("숫자를 입력하세요 : ")
print(name)
print(name*2)

위 코드의 결과는 다음과 같습니다.

 

[ print(name*2) ]

를 했을 때 name 변수에 입력된 값이 숫자라면

[ 4 ]를 출력했어야 하지만

name 변수에 입력된 값이 문자열이기 때문에

문자열을 두 번 반복한 [ 22 ]가 출력이 되게 됩니다.

 

[ 숫자 형태 입력받기 ]

 

그러면 숫자를 입력받기 위해서는

어떻게 해야 하는지 알아보겠습니다.

 

숫자를 입력받기 위해서는

입력받은 값의 형태를 바꿔준 후 변수에 할당해 주어야 합니다.

name = int(input("숫자를 입력하세요 : "))
print(name)
print(name*2)

이 코드의 결과는 다음과 같습니다.

 

이제 정상적으로 숫자 4가 표시가 됩니다.

int() 함수를 통해 입력받은 값을 정수형태로 변환을 한 것입니다.

 

숫자가 맞는지 다시 한번 확인해 보겠습니다.

name = int(input("숫자를 입력하세요 : "))
print(name)
print(name*2)
print(type(name))

위 코드의 결과는 다음과 같습니다.

 

만약 정수 형태가 아닌 

실수 형태로 변환하고 싶다면

[ float() ] 함수를 사용하시면 됩니다.

name = float(input("숫자를 입력하세요 : "))
print(name)
print(name*2)
print(type(name))

위 코드의 결과는 다음과 같습니다.

 

728x90
반응형

[ 값을 두 개 이상 입력 받기 ]

 

값을 두개 이상 입력받기 위해서는

[ split() ] 함수를 사용하면 됩니다.

여기서는 split() 함수에 대해서는 자세히 설명드리지 않고

input() 함수를 통해 여러 개의 값을 입력받기 위한

방법으로 사용하시면 된다는 정도로만 설명하겠습니다.

name, age = input("이름과 나이를 입력하세요 : ").split()
print(name, age)

split() 함수는 구분자를 여러 가지를 사용할 수 있으나,

기본적으로 [ 공백 ]을 기준으로 문자열을 구분합니다.

위 코드의 결과는 다음과 같습니다.

 

이렇게 입력받으면

이름과 나이 모두 문자열이 됩니다.

name, age = input("이름과 나이를 입력하세요 : ").split()
print(name, age)
print(type(name))
print(type(age))

 

이름과 나이를 입력받는데 

이름은 문자열로

나이는 정수로 

하고 싶다면 다음과 같이 처리하시면 됩니다.

name, age = input("이름과 나이를 입력하세요 : ").split()
int_age = int(age)
print(name, int_age)
print(type(name))
print(type(int(age)))

위 코드의 결과는 다음과 같습니다.

 

마지막으로 숫자 두 개를 입력받는 방법입니다.

map() 함수를 사용하게 됩니다.

first_number, second_number = map(int, input("두 정수를 입력하세요 : ").split())
print(f"입력된 정수: {first_number}, {second_number}")

이렇게 하면 두 개의 입력값을 받아

한 번에 모두 정수형으로 형태를 변환해 줍니다.

 

간단한 조건을 추가해 보겠습니다.

두 정수를 동시에 입력은 데,

정수는 0보다 크고 10보다 작은 수만 입력이 되어야 합니다.

first_number, second_number = map(int, input("두 정수를 입력하세요 (0보다 크고 10보다 작아야 함, 공백으로 구분): ").split())

while not (0 < first_number < 10) or not (0 < second_number < 10):
    print("잘못된 입력입니다. 각 정수는 0보다 크고 10보다 작아야 합니다.")
    first_number, second_number = map(int, input("두 정수를 다시 입력하세요 (0보다 크고 10보다 작아야 함, 공백으로 구분): ").split())

print(f"입력된 정수: {first_number}, {second_number}")

위 코드의 결과는 다음과 같습니다.

 

input 함수에 대해 간단히 알아보았습니다.

도움이 되셨길 바랍니다.

728x90
반응형
LIST