Python input multiple line

Sang Jun Lee·2020년 8월 30일
0
  1. input()
    가장 기본적인 입력 방법
    한줄씩 통째로 입력을 받는 방법으로
    input()은 입력되는 모든 것을 문자열로 취급한다.

a = input()
10 20 30을 입력하면 '10 20 30' 으로 문자열 형태로 변수 a에 저장 된다.

a = int(input())
int()로 input()을 감싸주면 문자열을 정수로 변환하여 a에 저장할 수 있다.

그러나 10만 입력한 경우는 변환이 가능하지만
10 20 30을 입력하면 정수로 변환이 불가능하여 에러가 발생한다.

  1. split()
    이러한 경우에 split() 함수를 사용하여 공백문자를 기준으로 문자를 나누어주고 이 나눈 값은 리스트에 하나씩 들어가게 된다.

a = input().split()
10 20 30을 입력하였을 때 각각의 값이 리스트에 문자열로 입력이 되었다.

  1. map()
    위의 입력을 int형으로 받기 원한다면 map() 함수를 사용하여야 한다.

map(func,x) 함수는 리스트 같은 x의 각 요소에 func을 적용시켜 주는 함수이다.

a = list(map(int,input().split()))
map 함수를 사용하면 int형으로 변환된 숫자가 리스트에 입력된 것을 볼수있다.

또한 입력한 숫자를 각자 다른 변수에 저장하고싶다면

a,b,c = map(int,input().split())
위와 같이 사용하면 된다.

  1. 1차원 배열
    1차원 배열을 만들어 0으로 초기화 하려면

a = [0 for _ in range(10)]

a = [0]*10
위의 두 방식이 있다.

  1. 2차원 배열
    a = [0]*10
    위으 방식으로 10개의 열을 가지는 1차원 배열을 만들면 열의 개수는 정해져있고 행을 여러번 추가해주면 2차원 배열이 만들어진다.

따라서 만약 n 행 m 열의 2차원 배열으 만들고싶다면

a = [[0] * m for _ in range(n)]
이런식으로 만들 수 있다.

먼저 [0] * m 으로 m개의 열을 만들고
이를 n번 반복하여 n행 m열의 2차원 배열을 만드는 것이다.

  1. 반복해서 입력받기
    만약 여러 줄에 걸쳐 입력을 받아야 하는 경우 int(input())을 for 반복을 통해 입력받을 수 있다.

L,A,B,C,D = [int(input()) for _ in range(5)]
7. 2차원 배열 입력받기

위의 그림처럼 입력받아야 하는 경우

n,m = map(int,input().split())
a = [list(map(int,input())) for _ in range(n)]

위의 경우에는 split()으로 공백만 나누어주면 된다.

n,m = map(int,input().split())
a = [list(map(int,input().split())) for_in range(n)]
From : https://blog.naver.com/wpghks7/221584113312

profile
Live now and Dream better tomorrow

0개의 댓글