반응형
snowman95
코딩수련장
snowman95
전체 방문자
오늘
어제
  • 분류 전체보기 (229)
    • 앱테크 (3)
    • 옵시디언 (5)
    • 드라마, 영화 (1)
    • 개발자 이야기 (23)
    • 프로젝트 (10)
      • 프로젝트 방법론 (7)
      • 프로젝트 기록 (2)
      • Github (1)
    • 개발 지식 (0)
      • 디자인 패턴 (0)
    • 프론트엔드 개발 (5)
      • 테크트리 (2)
      • React.js (19)
      • ReactNative (2)
      • Next.js (6)
      • GraphQL (6)
      • 패키지 매니저 (2)
      • 라이브러리 (3)
      • 상태관리 라이브러리 (4)
      • Web 지식 (3)
      • HTML CSS (26)
      • Javascript (16)
      • 도구 (Tool) (3)
      • 성능 최적화 (1)
      • 디자인시스템 (0)
    • Python (53)
      • 모음집 (1)
      • 문법 (12)
      • 라이브러리 (15)
      • 알고리즘 (10)
      • 백준 문제풀이 (9)
      • 코딩테스트 (2)
      • 도구 (Tool) (3)
    • C++ (20)
      • 알고리즘 (6)
      • 삼성SW기출 (6)
      • 삼성 A형 (6)
    • 데이터사이언스 (1)
    • 인프라 (9)
      • 하드웨어 지식 (4)
      • Ansible (2)
      • Database (2)
      • 쉘스크립트 (1)
    • 주식 (0)
    • 취업 준비 (4)
      • 취업 이야기 (0)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • 알고리즘
  • A형
  • 오블완
  • 전공 요약 #데이터베이스
  • 언어
  • 전공요약
  • 기계식키보드 #nuphy
  • C++
  • nextjs
  • 공간복잡도
  • 백준
  • 삼성SDS
  • 전공 요약 #네트워크
  • Next.js #graphql #tailwind.css
  • 티스토리챌린지
  • 나의 해방일지
  • 면접
  • 전공 요약 #운영체제
  • 삼성SW역량테스트
  • GraphQL

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
snowman95

코딩수련장

파이썬(python) - 입출력
Python/문법

파이썬(python) - 입출력

2021. 4. 18. 21:57
728x90
반응형

콘솔로 입출력 하기


1. 내장 함수 사용

○ 입력 : input()

input()
동작 : 콘솔 입력 → (Enter) → str변환 → '\n'(개행)제거 → 반환

input("문구")
동작 : "문구"출력 → 콘솔 입력 → (Enter) → str변환 → 개행('\n')제거 → 반환

○ 사용 예시

a = input("입력해주세요 :")

입력해주세요 :
(사용자 입력받음) Enter

 

○ 출력 : print(*value, end='\n', sep=' ')

print(*value, end='\n', sep=' ')
- *value : 가변 입력   (콤마로 구분된 여러 입력 받을 수 있음)
- end    : 줄바꿈 문자 (기본은 개행)
- sep    : 구분자      (기본은 공백)

동작 : 값sep값sep값end 순서로 출력
즉, 콤마로 구분된 여러 값들의 사이에 sep(구분자)를 넣고, 출력 마지막에 end를 넣음


print(값)
동작 : 값end 순서로 출력 → sep, end는 명시안하면 기본값으로 들어감
출력 : 값'\n'

print(값1, 값2)
동작 : 값1sep값2end 순서로 출력
출력 : 값1 값2'\n'

○ 사용 예시

print(1)             : 1'\n'
print(1, 2)          : 1 2'\n': 콤마마다 공백하나가 딸려옴
print(1, 2, end=' ') : 1 2
print(1, 2, sep=';') : 1;2    : 콤마대신 ;를 쓰겠다
print('cat=', 1)     : cat=1


이차원 리스트 이쁘게 출력
board = 
[[0, 3, 5, 4, 6, 9, 2, 7, 8],
[7, 8, 2, 1, 0, 5, 6, 0, 9], 
[0, 6, 0, 2, 7, 8, 1, 3, 5], 
[3, 2, 1, 0, 4, 6, 8, 9, 7], 
[8, 0, 4, 9, 1, 3, 5, 0, 6], 
[5, 9, 6, 8, 2, 0, 4, 1, 3], 
[9, 1, 7, 6, 5, 2, 0, 8, 0], 
[6, 0, 3, 7, 0, 1, 9, 5, 2], 
[2, 5, 8, 3, 9, 4, 7, 6, 0]]

for i in board:
    print(*i)
0 3 5 4 6 9 2 7 8
7 8 2 1 0 5 6 0 9
0 6 0 2 7 8 1 3 5
3 2 1 0 4 6 8 9 7
8 0 4 9 1 3 5 0 6
5 9 6 8 2 0 4 1 3
9 1 7 6 5 2 0 8 0
6 0 3 7 0 1 9 5 2
2 5 8 3 9 4 7 6 0

 

2. sys 라이브러리

○ 입력 : sys.stdin
○ 출력 : sys.stdout

import sys
sys.stdin.read()
동작 : 입력 후 (Ctrl+Z) → str변환 → 반환  # Ctrl+Z는 window

a = sys.stdin.readline()
동작 : 입력 후 Enter → str변환 → 반환 

a.split(구분자)
동작 : str을 구분자로 분리하여 리스트로 변환 → 반환 
(default = ' ')

a.rstrip('\n')
동작 : str의 우측 개행('\n') 제거 → 반환 

sys.stdin.readlines()
동작 : 입력 후 (Ctrl+Z) → 줄 단위로 str변환 후 list 요소로 들어감 → 반환
# Ctrl+Z는 window



sys.stdout.write(str변수)
동작 : str변수 받아서 출력 (print처럼 개행 안붙음)

○ 사용 예시

sys.stdin.readline()
동작 : 입력 후 Enter → str변환 → 반환
입력 : 1
반환 : '1\n'  (Enter='\n' 개행까지 포함되어 저장됨)

sys.stdin.readline().rstrip()
동작 : 입력 후 Enter → str변환 → 우측개행 제거 → 반환
입력 : 1
반환 : '1'   (개행이 제거됨)

sys.stdin.readline().split()
동작 : 입력 후 Enter → str변환 → 공백단위로 잘라서 list변환 → 반환
입력 : 1 2 3 4 5
반환 : ['1','2','3','4','5']

map(int, sys.stdin.readline().split())
동작 : 입력 후 Enter → str변환 → 공백단위로 잘라서 list변환 → list의 각 요소를 int로 변환 → 반환
입력 : 1 2 3 4 5
반환 : [1,2,3,4,5]

n = int(sys.stdin.readline())
a = [int(sys.stdin.readline()) for i in range(n)]
동작 : 첫째 줄에 n 입력, 둘째 줄 부터 정수 n번 입력받아서 리스트로 반환
입력 : 2
       10
       20
반환 : [10,20]


2차원 list 입력받기 (바둑판 모양)
n = int(sys.stdin.readline())
board = [list(map(int,sys.stdin.readline().split())) for i in range(n)]
입력 : 3
       1 2 3
       4 5 6
       7 8 9
반환 : 
       [[1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]]
        
2차원 list 생성 (3x3)
board = [[0] * 3 for i in range(3)]
반환 : 
       [[0, 0],
        [0, 0]]

 

3. 입출력 속도 차이 비교

○ 입력 속도 비교

○ 출력 속도 비교

데이터가 많을 수록 입출력 속도 차이가 심하게 난다.
sys.stdin.readline() > input()

 

4. 더 이상 읽을 게 없다면??

  1. (Python) input()은 EOFError를 발생시킵니다.
    while True:
        try:
            print(input())
        except EOFError:
            break​
  2. (Python) sys.stdin.readline()은 빈 문자열을 반환합니다.
    1) 아래와 같이 풀면 빈줄이 주어지는 경우 처리못함. (그대로 출력하기 1번 문제는 풀 수 있다)
    import sys
    while True:
        s = sys.stdin.readline().rstrip()
        if s:
            print(s)
        else:
            break​
    아래와 같이 받으면 빈줄이 주어지는 경우도 처리가능 (그대로 출력하기 1,2 모두 풀이 가능) 
    import sys 
    for s in sys.stdin: 
        print(s, end='')
 

11718번: 그대로 출력하기

입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시

www.acmicpc.net

 

입력에 빈 줄이 주어질 수도 있고, 각 줄의 앞 뒤에 공백이 있을 수도 있는 경우

 

11719번: 그대로 출력하기 2

입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄이 주어질 수도 있고, 각 줄의 앞 뒤에 공백이

www.acmicpc.net


파일로 입출력하기


f = open('input.txt','r')  : 파일 열기
read = f.read()            : 파일 내용 전체를 하나의 str로 반환
readline = f.readline()    : 파일 한줄 읽어서 str로 반환
readlines = f.readlines()  : 파일 모든줄 읽고 한줄씩 끊어 str 리스트로 반환
f.close()                  : 파일 닫기

 

반응형
저작자표시 동일조건 (새창열림)

'Python > 문법' 카테고리의 다른 글

파이썬(python) 정렬 (sort)  (0) 2021.04.20
파이썬 (python) 문자열 뒤집기 (reverse)  (0) 2021.04.20
파이썬(python) - 이터레이션 형 (Iteration)  (0) 2021.04.18
파이썬 (python) - Error 메모장  (0) 2021.04.04
파이썬 (python) - 잡기술 메모장  (0) 2021.03.22
    'Python/문법' 카테고리의 다른 글
    • 파이썬(python) 정렬 (sort)
    • 파이썬 (python) 문자열 뒤집기 (reverse)
    • 파이썬(python) - 이터레이션 형 (Iteration)
    • 파이썬 (python) - Error 메모장
    snowman95
    snowman95
    (17~19) Unity/Unreal Engine 게임 프로그래머 (20~21) System Administrator ___________ (22~) React 웹 프론트앤드 개발자 __________ 깃헙 : https://github.com/snowman95

    티스토리툴바