Python에서 input() 함수를 이용하여 사용자로부터 데이터를 입력받는 다양한 방법을 소개합니다.
가장 기본적인 방법부터, 여러 데이터를 받는 방법을 순차적으로 소개합니다.
1. input() 함수로 1개의 데이터 입력 받기
다음과 같이 input()은 console에서 사용자로부터 데이터를 입력받습니다.
val = input()
print(val)위의 코드를 실행하면 다음과 같이 출력됩니다. (100을 입력하였고, 100을 출력하였습니다.)
> 100
100input()의 인자로 문자열을 전달하면 데이터를 입력받을 때 그 문자열을 Console에 출력합니다.
val = input("Enter something: ")
print(val)Output:
Enter something: 100
1002. input() 함수로 2개 이상의 데이터 입력 받기 (1)
직관적인 방법으로, 2개 이상의 데이터를 받으려면 input()을 두번 사용하면 됩니다.
num1 = input("Enter integer1: ")
num2 = input("Enter integer2: ")
sum = num1 + num2
print(sum)숫자를 입력했지만 실제로 리턴되는 타입은 String입니다. 입력 값은 문자열로 리턴되기 때문에, sum은 40이 아닌 문자열의 합 1030이 됩니다. 입력 받은 값을 Integer 또는 Float으로 사용하려면 문자열을 각각의 타입으로 변환해야 합니다.
Output:
Enter integer1: 10
Enter integer2: 30
1030숫자의 합을 구하고 싶다면, 다음과 같이 문자열을 int로 변환해주면 됩니다.
num1 = input("Enter integer1: ")
num2 = input("Enter integer2: ")
sum = int(num1) + int(num2)
print(sum)Output:
Enter integer1: 10
Enter integer2: 30
40만약 입력받는 데이터가 float이라면 float으로 변환해야 합니다.
num1 = input("Enter float1: ")
num2 = input("Enter float2: ")
sum = float(num1) + float(num2)
print(sum)Output:
Enter float1: 10.2
Enter float2: 22.4
32.5999999999999943. input() 함수로 2개 이상의 데이터 입력 받기 (2)
input()을 한번만 사용하고 여러 데이터를 받는 방법도 있습니다.
다음과 같이 구현하면 두개의 데이터를 받을 수 있습니다.
v1, v2 = input("Enter two value: ").split()
v1, v2 = [int(v1), int(v2)]
sum = v1 + v2
print("v1: {}, v2: {}".format(v1, v2))
print("sum: {}".format(sum))split()을 사용하면 입력받은 데이터를 공백(whitespace)으로 나누고 각각의 데이터를 변수에 할당해줍니다.
Output:
Enter two value: 10 30
v1: 10, v2: 30
sum: 40만약 데이터를 whitespace로 구분하지 않고 Comma로 구분하려면 split(",")처럼 구분자를 인자로 넣어주면 됩니다.
v1, v2 = input("Enter two value: ").split(",")
v1, v2 = [int(v1), int(v2)]
sum = v1 + v2Output:
Enter two value: 10,30
v1: 10, v2: 30
sum: 40위의 예제들은 데이터를 입력받고 그 데이터를 integer 또는 float으로 변환하였는데요.
다음과 같이 구현하면 사용자로부터 문자열을 입력받고 바로 특정 타입으로 변환할 수 있습니다.
v1, v2 = [int(value) for value in input("Enter two value: ").split()]
sum = v1 + v2
print("v1: {}, v2: {}".format(v1, v2))
print("sum: {}".format(sum))Output:
Enter two value: 10 30
v1: 10, v2: 30
sum: 403개 이상의 데이터를 받으려면, 다음과 같이 변수를 늘리면 됩니다.
v1, v2, v3 = input("Enter three value: ").split()
print("v1: {}, v2: {}, v3: {}".format(v1, v2, v3))Output:
Enter three value: 10 20 30
v1: 10, v2: 20, v3: 304. 주의할 점
다음과 같은 경우에 에러가 발생할 수 있습니다. 이런 상황을 고려하여 예외처리를 해줘야 합니다.
- 2개의 Integer를 받도록 구현했는데 문자열을 입력하면 다음과 같은 에러가 발생합니다.
Enter two value: 10 aa
Traceback (most recent call last):
File "/home/js/blog-code/python_example/input/input.py", line 37, in <module>
v1, v2 = [int(value) for value in input("Enter two value: ").split()]
File "/home/js/blog-code/python_example/input/input.py", line 37, in <listcomp>
v1, v2 = [int(value) for value in input("Enter two value: ").split()]
ValueError: invalid literal for int() with base 10: 'aa'- 3개의 데이터를 받기로 구현했는데 4개를 입력하면 다음과 같은 에러가 발생합니다.
Enter three value: 1 2 3 4
Traceback (most recent call last):
File "/home/js/blog-code/python_example/input/input.py", line 46, in <module>
v1, v2, v3 = input("Enter three value: ").split()
ValueError: too many values to unpack (expected 3)Related Posts
- Python - Yaml 파일 파싱하는 방법
- Python - 파일 내용 삭제
- Python - for문에서 리스트 순회 중 요소 값 제거
- Python - 두 리스트에서 공통 요소 값 찾기
- Python - 문자열 앞(뒤)에 0으로 채우기
- Python - 공백으로 문자열 분리
- Python - 중첩 리스트 평탄화(1차원 리스트 변환)
- Python - 16진수 문자열을 Int로 변환
- Python - 두 날짜, 시간 비교
- Python f-string으로 변수 이름, 값 쉽게 출력 (변수명 = )
- Python - nonlocal과 global 사용 방법
- Python 바다코끼리 연산자 := 알아보기
- Python - pip와 requirements.txt로 패키지 관리
- Python - 딕셔너리 보기 좋게 출력 (pprint)
- Python - Requests 사용 방법 (GET/POST/PUT/PATCH/DELETE)
- Python - 온라인 컴파일러 사이트 추천
- Python - os.walk()를 사용하여 디렉토리, 파일 탐색
- Python - 문자열 비교 방법
- Python - Text 파일 읽고 쓰는 방법 (read, write, append)
- Python - 리스트에서 첫번째, 마지막 요소 가져오는 방법
- Python - 두개의 리스트 하나로 합치기
- Python - 리스트의 첫번째 요소 제거
- Python - 리스트의 마지막 요소 제거
- Python 소수점 버림, 4가지 방법
- Python 코드 안에서 버전 확인 방법
- Python 소수점 반올림, round() 예제
- Python - 리스트 평균 구하기, 3가지 방법
- Python - bytes를 String으로 변환하는 방법
- Python - String을 bytes로 변환하는 방법
- Python 버전 확인 방법 (터미널, cmd 명령어)
- Python - 람다(Lambda) 함수 사용 방법
- Python - dict 정렬 (Key, Value로 sorting)
- Python - range() 사용 방법 및 예제
- Python - 리스트를 문자열로 변환
- Python - 문자를 숫자로 변환 (String to Integer, Float)