입출력

김상윤·2022년 1월 20일
0

python

목록 보기
1/13

입력

  • input()
    : "개행을 기준으로" 데이터를 입력 받아서 '문자열'로 리턴
  • python은 c++의 getline()과 유사하게 수행한다.
    : 한 줄 입력
x = input()
  • c++의 cin처럼 whitespace 기준으로 입력 받으려면
    : input() 이후 split()으로 쪼개줘야 한다.
a, b = input().split()
a, b, c = input().split()
#list elements로 다중할당, 변수 개수만큼만 입력해야 실행 가능
#각 변수 = str type

split()
: str의 내장함수
: s.split()
: 문자열을 whitespace를 기준으로 쪼개서 각 문자열을 elements로 갖는 list 리턴
split("x")
: 문자열을 구분자 x를 기준으로 쪼개서 각 문자열을 elements로 갖는 list 리턴
: "연속된 구분자는 묶이지 않고 빈 문자열을 구분하는 것으로 간주합니다"
: split()에서는 공백 3개가 연달아 와도 하나의 whitespace로 간주하지만, (" ")공백문자가 구분자로 주어지고 공백 3개가 연달아 오면 (" ")공백문자 2개는 list에 element로 들어간다.

  • input("hello")
    : "hello"출력 후 데이터를 입력 받아서 '문자열'로 리턴

input활용

정수 여러개 입력 받기

  • '정수' 여러개 입력받아 list로 저장
a = [int(x) for x in input().split()]
a, b, c = [int(x) for x in input().split()]
#list elements로 다중할당, 변수 개수만큼만(3개) 입력해야 실행 가능
  • '정수' 여러개 입력받아 list로 저장 -2
a = list(map(int, input().split()))

print(input().split()) # list
print(type(map(int, input().split()))) #map object
print(type(a)) #list
  • map(함수, sequential 객체)
    : 객체의 모든 원소에 각각 함수를 동작시켜 그 결과를 map 객체로 return

행렬(2차원배열) 입력받기

arr = [0 for _ in range(k)]
for i in range(k):
  arr[i] = [int(x) for x in input().split()]
arr = []
for i in range(k):
  arr.append([int(x) for x in input().split()])
arr = [list(map(int, input().split())) for _ in range(k)]
arr = [[int(x) for x in input().split()] for _ in range(k)]
  • 띄어쓰기 없이 정수 여러개 입력받기
arr = [[int(x) for x in input()] for _ in range(n)]

여러가지 algorithm 입력 예제

(1, 1)부터 시작하는 2차원 배열 입력 받기

cost = [[0] for _ in range(n+1)]
for i in range(1, n+1):
  cost[i] = cost[i] + [int(x) for x in input().split()]

공백 없이 입력받기

map = [[] for _ in range(m)]
for i in range(m):
  s = input()
  map[i] = [int(a) for a in s]
map = []
for i in range(m):
  l = [int(x) for x in input()]
  map.append(l)

공백 없이 값 변환해서 입력 받기

: if문, for을 동시에 one-line으로

map = [[] for _ in range(m)]
for i in range(m):
  s = input()
  map[i] = [0 if a=="." else 2 for a in s]

출력

  • print(x)
    : 변수 x의 value 출력
  • print함수는 출력 후 '\n'개행문자 출력이 default
    -> 변경 하고 싶으면
print(i, end=' ') 
//출력 후 개행하지 않고 띄어쓰기

문자열 출력

  • print("aaa""bbb")
    = print("aaa" + "bbb")
  • print("aaa", "bbb")
    = print("aaa" + " " + "bbb")

문자열 + 변수 출력

  • print("a={}, b={}".format(a,b) )
    = print(f"a={a}, b={b}")
    = print("a=" + str(a) + ", b=" + str(b))
  • print("a=",a)
    = print("a=" + " " + str(a))
  • print("a={}, b={}".format(*list))
    = print("a=" + str(list[0]) + ", b=" + str(list[1]))

길이, 자리수 출력 포맷

list 출력

  • elements들만 공백과 함께 출력
l = [1, 3, 5]
print(*l) # 1 3 5

참고

https://docs.python.org/ko/3/library/stdtypes.html?highlight=split

0개의 댓글