문제
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
풀이
일단 내가 한참을 헤맨 뒤 통과한 코드부터 보자.
a, b = map(int, input().split())
print(a+b)
맞다... 난 많은 걸 잊고 산 사람이다.
다중할당을 어제 공부해놓고 a와 b를 동시에 받을 생각을 못하고 하나씩 받다가 런타임에러를 마주하고 절망했다.
두개의 변수를 입력받을 때는 input().split()을 쓰면 되는 구나! 하고 코드를 고쳤다가 틀렸다는 글자를 보고 또 절망했다.
split의 결과값이 정수가 아닌 문자열로 나오기 때문에 int로 하나하나 고쳐줘도 되지만, map이라는 게 있지 않은가.
- 변수1, 변수2 = map(int, input().split())
*map은 리스트의 item들을 지정된 함수로 처리해주는 함수
근데 map이 기억이 안나서 이것저것 뒤져봤는데 도통 이해가 되지 않는다. map 특집으로 따로 날잡고 공부를 해야할 듯 하다. @2021.07.15 00:29
여러 개의 데이터를 한번에 입력 받고 싶을 때? >> split() !
a , b = input().split()
위의 코드 실행시 공백으로 구분하여 데이터를 나눈다. split()에서 빈 괄호가 ' '를 의미하고 있는 것이다.
하지만 여기서 바로 a + b를 할 수는 없다.
input으로 입력 받은 건 전부 문자열로 저장되기 때문이다.
그래서 형변환이 필요하다.
input을 int로 감싸주는 방법도 있지만, map은 일괄적인 형변환을 가능하게 해준다.
- map(자료형, input( ). split( ))
a, b = map(int, input("숫자 두 개를 입력해주세요 : ").split())
print(a+b)
>> 숫자 두 개를 입력해주세요 : 819 1224
>> 2043
map을 다시 공부했다. 다시 보니까 다중할당이랑 map이랑 관련있는 건 일괄적인 형변환 밖에 없었다. ㅎㅎㅎ... 어제 너무 더워서 머리가 어떻게 됐나보다. 아무튼. 오늘도~ 아자아자~ @2021.07.15 19:20
'프로그래밍 > 파이썬 공부' 카테고리의 다른 글
[백준 #9498][Python] 시험 성적 (0) | 2021.08.17 |
---|---|
[백준 #2753][Python] 윤년 (0) | 2021.08.17 |
파이썬 기초 2 함수와 메서드 (0) | 2021.07.18 |
[백준 #10172][Python] 개 출력 문제 (0) | 2021.07.15 |
파이썬 기초 01 리스트와 딕셔너리 (0) | 2021.07.14 |