파이썬/첫 실행과 기본 사용법

파이썬 input() 완벽 가이드 | 한 줄 입력부터 여러 줄, 예외 처리, sys.stdin, 환경 변수까지 총정리

creator6556 2025. 10. 10. 12:58

1 input() 기본 개념

사용자의 키보드 입력을 문자열(String)로 받아오는 함수

→ 사용자가 입력하고 Enter를 누르면 입력이 완료됨

input()으로 받은 값은 항상 문자열(str) 형태

1-1 코드

name = input('이름을 입력하세요 : ')
print(f'안녕하세요, {name}님!')

1-1 결과


2 입력값의 자료형 특징

1) 숫자를 입력해도 문자열

2-1 코드

num = 10        # int
text = '10'     # str
print(type(num), type(text))  # <class 'int'> <class 'str'>

2-1 결과

→ '10'과 10은 겉보기엔 같아도 자료형이 다름


2) 빈 입력 / 공백 입력도 문자열

2-2 코드

value = input('엔터만 눌러보세요: ')
print(repr(value), len(value))

2-2 결과

→ 아무것도 입력하지 않으면 ''이며, 길이는 0임

→ 스페이스바를 입력할 경우 ' '이며, 길이는 1임


3) True / False도 문자열

True를 입력해도 'True' 문자열로 처리


3 숫자 계산을 위한 형 변환

문자열을 숫자로 변환하려면 int() 또는 float()을 사용함

3-1 코드

a = input('첫 번째 숫자: ')
b = input('두 번째 숫자: ')
print(a + b)  # 문자열 이어붙이기 (예: 10 + 20 → 1020)

a, b = int(a), int(b)
print(a + b)  # 숫자 덧셈 (30)

3-1 결과


728x90

4 문자열 처리 기본

1) 문자열 연결과 반복

4-1 코드

print('Hello' + 'World')
print('Hi!' * 3)

4-1 결과


2) f-string 포매팅 (추천)

4-2 코드

name = '홍길동'
age = 20
print(f'{name}님은 {age}살입니다.')

4-2 결과


3) 문자열 인덱싱과 슬라이싱

4-3 코드

word = 'Python'
print(word[0], word[-1])  # P, n
print(word[:3])           # Pyt
print(word[::-1])         # nohtyP

4-3 결과


5 문자열 주요 메서드 요약

목적 메서드 설명
공백 제거 strip() 양쪽 공백을 제거함
대소문자 upper(), lower() 대문자/소문자로 변환힘
찾기/바꾸기 find(), replace() 문자열을 검색/교체함
분리/합치기 split(), '구분자'.join() 문자열을 나누기/합치기

6 예외 처리로 안전한 입력

1) try / except 구조

5-1 구조

try:
    num = int(input('숫자 입력: '))
except ValueError:
    print('숫자만 입력해주세요.')

2) 올바른 값이 나올 때까지 반복

5-2 코드

while True:
    try:
        num = int(input('숫자 입력: '))
        break
    except ValueError:
        print('잘못 입력했습니다.')

5-2 결과


3) finally로 마무리

5-3 코드

try:
    num = int(input('입력: '))
except:
    print('오류 발생')
finally:
    print('입력 과정 종료')

5-3 결과


7 여러 줄 입력받기

1) 정해진 횟수는 for문

6-1 코드

for i in range(3):
    name = input(f'{i+1}번째 이름: ')
    print(f'{i+1}번째 이름은 {name}입니다.')

6-1 결과


2) 입력 개수를 모를 때는 while문

6-2 코드

lines = []
print('문장을 입력하세요 (끝내려면 exit):')
while True:
    text = input()
    if text == 'exit':
        break
    lines.append(text)

print(lines)

6-2 결과


3) 리스트 컴프리헨션 버전

6-3 코드

n = int(input('몇 줄 입력할까요? '))
lines = [input(f'{i+1}번째 줄: ') for i in range(n)]
print(lines)

6-3 결과


4) 문단 합치기

6-4 코드

n = int(input('몇 줄 입력할까요? '))
lines = [input(f'{i+1}번째 줄: ') for i in range(n)]
result = "\n".join(lines)
print(result)

6-4 결과


8 자주 만나는 문제 & 해결법

문제 상황 원인 해결 방법
계산이 안 됨 문자열로 입력됨 int() 또는 float()으로 변환하기
공백을 포함한 입력 오류 ' '가 존재함 .strip()으로 제거하기
문자를 숫자로 변환 ValueError try/except 처리하기
입력 멈춤처럼 보임 input()이 대기 상태임 안내 문구를 추가하기
온라인 채점 EOFError 입력이 없음 try: input() except EOFError:
한글 깨짐 인코딩 문제 chcp 65001 / UTF-8 설정
속도 느림 input() 반복 sys.stdin.readline() 사용

9 고급 입력 활용

1) 빠른 입력 : sys.stdin.readline()

대량 입력용으로 코딩테스트에 유용함

7-1 코드

import sys
data = sys.stdin.readline().rstrip()
print(data)

7-1 결과


2) 기본값 설정

7-2 코드

name = input('이름: ') or '이름없음'
print(name)

7-2 결과


3) 유효성 검사

7-3 코드

age = input('나이: ')
if age.isdigit():
    print('정상 입력')

7-3 결과


4) 여러 줄 자동 입력

7-4 코드

import sys
lines = sys.stdin.read().splitlines()
print(lines)

7-4 결과


10 실무와 심화 입력 테크닉

1) 명령행 인자 (sys.argv)

8-1-1 코드 : app.py

import sys
print(sys.argv[1:])

8-1-2 명령어

python app.py apple banana

8-1 결과


2) 환경 변수 (os.environ, .env)

8-2-1 코드 : app.py

import os
api = os.environ.get('API_KEY', '없음')
print(api)

8-2-2 명령어

set API_KEY=abcd1234

8-2 결과


3) 인코딩 제어

→ 8-3-1 명령어를 터미널/명령 프롬프트에 입력하거나 8-3-2 코드를 자신이 작성하는 파이썬 파일에 추가하기

8-3-1 명령어

chcp 65001

8-3-2 코드

sys.stdin.reconfigure(encoding='utf-8')

4) 입력 자동화 (리디렉션)

8-4-1 코드 : app.py

import sys
sys.stdin.reconfigure(encoding='utf-8')
sys.stdout.reconfigure(encoding='utf-8')

name = input('이름을 입력하세요: ')
print(f'{name}님, 반갑습니다!')

8-4-2 내용 : input.txt

홍길동

8-4-3 명령어

python app.py < input.txt > output.txt

8-4 결과


5) 정규표현식으로 패턴 검사

8-5 코드

import re

email = input('이메일을 입력하세요. : ')

if re.match(r'^[^@]+@[^@]+\.[^@]+$', email):
    print('이메일 형식 OK')

8-5 결과


6) 자동 테스트 Mocking

8-6 코드

from unittest.mock import patch
with patch('builtins.input', return_value='홍길동'):
    print(input())  # 홍길동

8-6 결과


Python input()에 대해 더 상세한 설명을 원하는 분들은 아래 사이트에 접속하기

Python input()


Python input() 뿐만 아니라 다른 프로그래밍 언어에 대해 알고 싶은 분들은 아래 사이트에 접속하여 원하는 링크에 접속하기

프로그래밍 언어 링크 모음

 

 

728x90