사용자 입력 input()
사용자 입력은 input() 함수를 통해 받을 수 있습니다. 단, 모든 입력된 숫자라 할지라도 모두 문자로 간주합니다.
input() 함수의 괄호 안에는 안내문구를 작성할 수 있습니다.
num1 = input("숫자를 입력하세요 > ") #7입력
print(num1) #7
print(type(num1)) #<class 'str'>
str(), int(), float() 함수
사용자 입력을 받아 숫자 연산을 하기 위해서는 입력받은 값을 숫자로 변환해주어야 합니다.
- str(): 정수나 실수를 문자열로 바꾸는 함수
- int(): 숫자나 문자열을 정수형으로 바꾸는 함수
- float() 숫자나 문자열을 실수형으로 바꾸는 함수
num1 = input("숫자를 입력하세요 > ") #10
num2 = input("숫자를 입력하세요 > ") #20
print(num1 + num2) #1020 / 둘다 문자열이므로 두 문자열을 연결해준다.
print(int(num1) + int(num2)) #30
print(float(num1) + float(num2)) #30.0
split() 함수
여러 개의 값을 동시에 입력받아 변수에 저장하기 위해 split() 함수를 사용합니다. 괄호 안에는 '구분자'를 넣을 수 있습니다.
#구분자 X
a,b,c = input("숫자 3개를 입력하세요 > ").split() #3 5 7 입력
print(a,b,c) #3 5 7
#구분자 O
a,b,c = input("숫자 3개를 입력하세요 > ").split('/') #3/5/7입력
print(a,b,c) #3 5 7
split() 함수는 문자열을 분할할 때 사용하기도 합니다.
text = "이름: 심청이, 나이: 20살, 취미: 널뛰기"
print(text.split(','))
#출력값
#['이름: 심청이', ' 나이: 20살', ' 취미: 널뛰기']
map() 함수
여러 개의 값을 동시에 자료형을 변경하고자 하는 경우, map() 함수를 사용할 수 있습니다. 여러 개의 값을 한줄로 입력 받고 싶을 때 input(), map(), split() 함수를 사용하면 좋습니다. 아래 코드를 보면 split() 함수가 공백단위로 입력 값을 분리하고, map() 함수가 이 값을 숫자로 변환하는 역할을 합니다.
a,b,c = map(int,input('숫자 3개를 입력하세요 > ').split()) #10 20 30 입력
print(a,b,c) #10 20 30
print(type(a)) #<class 'int'>
print(type(b)) #<class 'int'>
print(type(c)) #<class 'int'>
'''
문자열을 한줄로 받을 때에는
input()은 모든 입력값을 문자열로 간주하기 때문에
map()을 사용하여 형변환을 할 필요가 없음
'''
#map() X, 문자열을 한줄로 받기
list1 = input().split()
print(list1) #['1', '2', '3']
#map() O, 정수형을 한줄로 받기
list2 = map(int,input().split())
print(list2) #객체 생성
print(list(list2)) #[1, 2, 3]