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 결과

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() 뿐만 아니라 다른 프로그래밍 언어에 대해 알고 싶은 분들은 아래 사이트에 접속하여 원하는 링크에 접속하기
'파이썬 > 첫 실행과 기본 사용법' 카테고리의 다른 글
| UTF-8 완전정복: 문자 -> 코드포인트 -> 바이트까지 이해하기 (0) | 2025.10.20 |
|---|---|
| 파이썬 들여쓰기 완전 정복 : PEP 8 기준 + VSCode 자동 설정 가이드 (0) | 2025.10.17 |
| 파이썬 .py 파일 실행 방법 총정리 | 초보자부터 실무까지 완벽 가이드 (0) | 2025.09.30 |
| 파이썬 주석 & 타입 힌트 완벽 가이드 | PEP 8, Docstring까지 한 번에 정리 (1) | 2025.09.17 |
| 파이썬 print() 함수 완벽 정리 | 기본 출력부터 줄바꿈, 포매팅, 파일 출력까지 (0) | 2025.09.10 |