[ Basic ] 파이썬 Input() 함수, 사용자 입력 다루기와 유용한 예제들
[ 들어가며 ]
파이썬의 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))
위 코드의 결과는 다음과 같습니다.
[ 값을 두 개 이상 입력 받기 ]
값을 두개 이상 입력받기 위해서는
[ 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 함수에 대해 간단히 알아보았습니다.
도움이 되셨길 바랍니다.
여기를 방문하시면 더 많은 파이썬 관련 자료를 확인할 수 있습니다.