컴공생의 다이어리

[파이썬, Python] 입출력 본문

Development/Python & Django

[파이썬, Python] 입출력

컴공 K 2020. 12. 14. 19:31

입력

파이썬에서 데이터를 입력받을 때는 input()을 이용한다. input()의 경우 한 줄의 문자열을 입력받도록 한다. 만약 파이썬에서 입력받은 데이터를 정수형 데이터로 처리하기 위해서는 문자열을 정수로 바꾸는 int()함수를 사용해야 한다.

c=input() #데이터 입력받기

n=int(input()) #데이터를 정수로 입력받기

 

여러 개의 데이터를 입력받을 때는 데이터가 공백으로 구분되는 경우가 많다. 그래서 입력받은 문자열을 띄어쓰기로 구분하여 각각 정수 자료형의 데이터로 저장하는 코드의 사용 빈도가 높다. 이때는 list(map(int, input().split()))을 이용하면 된다.

data=list(map(int,input().split())) #각 데이터를 공백으로 구분하여 입력

 

공백으로 구분된 데이터의 개수가 많지 않다면 map(int, input().split())을 사용해도 좋다. a,b,c가 공백으로 구분되어 입력된다고 한다면 아래와 같이 입력을 받아도 좋다.

a,b,c=map(int,input().split()) #각 데이터를 공백으로 구분하여 입력

 

입력의 개수가 많은 경우에는 단순히 input()함수를 사용하지 않는다. 파이썬의 기본 input()함수는 동작 속도가 느려서 시간 초과로 오답 판정을 받을 수 있기 때문에 파이썬의 sys 라이브러리에 정의되어 있는 sys.stdin.readline() 함수를 이용한다. sys 라이브러리는 아래와 같이 사용하며 input()함수와 같이 한줄씩 입력받기 위해 사용된다.

import sys
sys.stdin.readline().rstrip()

sys 라이브러리를 사용할 때는 한 줄 입력을 받고 나서 rstrip()함수를 꼭 호출해야 한다. readline()으로 입력하면 입력 후 엔터가 줄 바꿈 기호로 입력된다.

 

 

출력

num=7
print("사과가 "+num+"개 있습니다.")

위와 같은 코드를 실행해보면 문자열 자료형끼리만 더하기 연산이 가능하기 때문에 오류가 발생한다. 이 문제를 해결해가 위해서는 아래와 같이 str()함수를 이용하여 출력하고자 하는 변수 데이터를 문자열로 바꾸어주거나, 혹은 각 자료형을 콤마(,)를 기준으로 구분하여 출력하면 된다.

num=7
print("사과가 "+str(num)+"개 있습니다.")

print("사과가 ",str(num),"개 있습니다.")

변수를 콤마로 구분하여 출력하는 경우는 의도하지 않은 공백이 삽입될 수 있다.

 

또 다른 방법으로 f-string문법을 사용할 수 있다. f-string은 문자열 앞에 접두사 'f'를 붙임으로써 사용할 수 있으며, f-string을 이용하면 단순히 중괄호({}) 안에 변수를 넣음으로써, 자료형의 변환 없이도 바꾸지 않고도 간단히 문자열과 정수를 함께 넣을 수 있다.

num=7
print(f"사과가 {num}개 있습니다.")

 

 

wikidocs.net/book/1

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net

 

728x90
Comments