python | 입출력(1)

나경호·2022년 4월 9일
0

Memo | python

목록 보기
1/7
post-thumbnail

1. 문제 및 설명

문제

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

입력
첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)

출력
첫째 줄에 A+B를 출력한다.

a, b = [int(x) for x in input().split()]
print(a+b)

해석- []: 리스트화함
이유_리스트화하지 않으면 입력된 숫자값이 문자로 취급 받기 때문.
cf. 111 + 222 -> 111222

      입력된 값(input())을 구분하고(.split()) x에 입력하여 정수화한다.(int(x))

      좀더 자세히 설명하면
       a, b = [int(x) for x in input().split()]
 
                            OR

       a, b = list(map(lambda x: int(x), input().split()))

이때, map()은 map(f, iterable)은 함수(f)와 반복 가능한(iterable) 자료형을 입력으로 받는다.
map은 입력받은 자료형의 각 요소를 함수 f가 수행한 결과를 묶어서 돌려주는 함수이다.


                            OR

       xs = []  
       for x in input().split():
		       xs.append(int(x))
    
       a = xs[0]
       b = xs[1]

위 식들은 모두 같은 의미로 해석할 수 있다.

1-1. 빠른 A+B

input 대신 sys.stdin.readline을 사용할 수 있다.
단, 이때는 맨 끝의 개행문자까지 같이 입력받기 때문에 문자열을 저장하고 싶을 경우
.rstrip()을 추가로 해 주는 것이 좋다.
예시

input 대신 sys.stdin.readline을 사용할 수 있다.
단, 이때는 맨 끝의 개행문자까지 같이 입력받기 때문에 문자열을 저장하고 싶을 경우
.rstrip()을 추가로 해 주는 것이 좋다.
예시

import sys
input = sys.stdin.readline
A, B = map(int, input().split())
print(A+B)

여기서 주의할 점은

import sys
input = sys.stdin.readline
N = int(input())
for i in range(1,N+1):
    print(i)

이런 코드에서

input = sys.stdin.readline().rstrip()

을 쓰게되면 range() 안에 문자열이 들어가게 되므로 TypeError: 'str' object is not callable 이런 오류가 뜨게 된다.

2. 간단정리

1. 기본형(데이터의 개수 입력)

N = int(input())

OR

import sys
input = sys.stdin.readline
K = int(input())

2. 여러 데이터를 하나의 변수에 저장, 공백으로 구분

import sys
data = list(map(int, sys.stdin.readline().split()))

3. 여러 데이터를 각각의 변수에 저장, 공백으로 구분

import sys
n, m ,k = map(int, sys.stdin.readline().split())

4. 데이터의 개수와 여러 데이터를 다음 줄에 입력할 경우

#1
import sys
N = int(input())
data = list(map(int, sys.stdin.readline().split()))

#2
import sys
N, *M = map(int, sys.stdin.read().split())
profile
기억창고👩‍🌾

0개의 댓글

관련 채용 정보