파이썬에서 사용자와 대화하는 첫걸음 – input()
스크립트가 말을 걸었다. 이제 대답할 차례다.
당신이 `input()`을 모른다면, 파이썬은 아직도 독백 중이다.
오늘은 그 독백에 반응을 심어주는 한 줄, input()
의 모든 것을 짚어본다.
안녕하세요, 파이썬을 하루에 하나씩 해치우는 시리즈입니다.
오늘의 타겟은 `input()` 함수. 이름부터 심상치 않죠.
이 친구 하나로 코드가 살아있는 인터뷰어처럼 움직입니다.
초보자에게는 마법, 실무자에겐 필수죠. 그럼, 본격적으로 시작해볼까요?
1. 왜 input인가?
프로그래밍은 원래 독백이다. 무조건적인 명령의 연속.
하지만 `input()`이 등장하면서, 그 독백은 질문이 된다.
컴퓨터가 말을 걸고, 사용자가 대답하는 순간.
그때부터 코드는 “상호작용”이 된다.
input()은 파이썬의 최소한의 인터페이스다.
하지만 그 영향력은 치명적이다.
조건문, 반복문, 함수 등 모든 흐름을 사용자의 손에 넘긴다.
input()은 코드에 ‘기다림’을 만들어준다.
기다림이 있다는 건, 반응이 있다는 뜻이다.
2. input()의 문법 완전 정복
다음은 input() 함수의 구조다.
표는 간단하지만, 해석은 정확해야 한다.
항목 | 내용 |
---|---|
기본 문법 | input("메시지") |
리턴값 | 사용자가 입력한 문자열(String) |
주의사항 | 항상 문자열 반환 → 숫자 처리 시 형변환 필수 |
사용자 입력은 늘 문자열이다.
이걸 잊으면, 버그는 너를 잊지 않는다.
3. 실전 예제 리스트
말이 아닌 코드로 말하자.
여기 input()의 진짜 활용 예시들이다.
- 이름을 받아 인사 출력하기
name = input("이름이 뭐예요? ") print(f"안녕하세요, {name}님!")
- 숫자 입력 후 계산하기
age = int(input("몇 살이에요? ")) print(age * 2)
- 퀴즈 문제 내기
answer = input("파이썬의 창시자는? ") print("정답!" if answer == "귀도" else "오답입니다.")
4. input과 형변환
`input()`은 언제나 문자열(str)을 반환한다.
숫자를 입력받았다고 생각해도, 그건 숫자처럼 생긴 글자일 뿐이다.
int(), float(), bool()처럼
다른 타입으로 감싸주는 것이 **형변환(casting)**이다.
# 문자열을 숫자로 바꾸기
num = int(input("숫자를 입력하세요: "))
print(num * 2)
문자열인 줄 모르고 int 없이 연산하려고 했다면?
ValueError는 예고된 함정이다.
5. input 함수 실수 총정리
많은 초보자들이 input()
에서 실수한다.
그 실수는 반복되고, 그 반복은 좌절을 낳는다.
실수 | 문제점 | 해결법 |
---|---|---|
숫자 입력 후 바로 연산 | 문자열이어서 오류 발생 | int() 로 형변환 |
입력값 없는 Enter | 빈 문자열 처리 안됨 | 조건문으로 검사 |
예외 상황 미처리 | 앱이 중단됨 | try-except 로 보호 |
input은 사소해 보이지만, 실수는 절대 사소하지 않다.
6. 요약 & 숙련 포인트
이제 당신은 `input()`을 단순한 입력 함수로 보지 않을 것이다.
그건 사용자와 대화할 줄 아는 코드의 시작이다.
- 항상 문자열 반환 → 숫자는
int()
또는float()
사용 - 빈 값 처리, 예외 처리 습관화
- 실전 예제 많이 써보기 → 인터랙션 감각을 기르기
input()은 질문이 아니라,
당신의 프로그램이 말을 걸 준비가 되었는지를 묻는 확인 질문이다.
4. 실전 후기와 사용자 꿀팁
“처음 input() 썼을 때, 그냥 사용자가 뭔가 입력하는 건 줄 알았어요.
그런데 그게 흐름을 바꾼다는 걸… 코드는 그 순간부터 ‘살아있는 것’처럼 느껴졌어요.”
input()은 단순 입력이 아니라 흐름을 유동적으로 만드는 ‘리액션 포인트’다.
숫자 입력 받을 땐 무조건 int()
나 float()
써라.
그냥 input() 받은 상태에서 연산하면 100% 에러 난다.
그리고 무조건 try-except
써라.
사용자는 예외를 만들고, 개발자는 그걸 예측해야 한다.
“사용자한테 숫자 물어봤는데 그냥 input() 받았어요.
계산하려다가 갑자기 에러 뻥!
나중에 보니 input()은 문자열이더라고요.
파이썬이 틀린 게 아니라, 내가 몰랐던 거였죠.”
결국, input은 사용자의 이야기를 듣는 코드다.
듣는 코드가 강하다.
5. 자주 묻는 질문 (FAQ)
input()은 숫자 입력도 받을 수 있나요?
기본적으로 문자열로 받기 때문에 숫자로 쓰려면 int()
나 float()
로 감싸줘야 합니다.
input()에 아무것도 안 입력하면 어떻게 되나요?
빈 문자열(“”)이 들어갑니다. 이 상태로 연산하면 에러가 날 수 있으니 예외 처리나 조건문으로 방어해야 합니다.
input()을 여러 번 쓰면 문제가 되나요?
문제 없습니다. 여러 번 쓸수록 대화형 앱처럼 동작하게 됩니다. 다만 입력 순서와 흐름에 신경 써야 합니다.
input()은 웹 브라우저에서도 동작하나요?
input()은 콘솔 환경에 최적화된 함수입니다. 웹에서 입력을 받으려면 자바스크립트나 HTML의 form을 사용해야 합니다.
input() 대신 쓸 수 있는 함수도 있나요?
파이썬 기본에는 input() 하나뿐입니다. GUI 환경이나 웹에서는 다른 입력 방식(UI 입력창, 웹 폼 등)을 사용합니다.
input()으로 받은 값을 바로 출력해도 되나요?
네. print(input(“입력하세요: “))처럼 바로 써도 됩니다. 다만 나중에 재사용할 거라면 변수에 저장하는 게 좋습니다.
6. 시각 요약 & 참고 자료
▲ input()의 데이터 흐름 구조 (출처: 위키피디아)
# 이름과 나이를 입력받고 출력하는 프로그램
name = input("이름을 입력하세요: ")
age = int(input("나이를 입력하세요: "))
print(f"{name}님은 내년에 {age+1}살이 됩니다.")
7. 마무리하며: 질문이 코드가 될 때
이제 당신은 `input()`의 의미를 알았다.
단순히 입력을 받는 함수가 아니라,
사용자와 코드를 연결하는 접점이다.
그리고 접점은 언제나,
“코드가 살아있다”는 증거다.
파이썬이 재미있어지는 건
단순한 계산이 아니라,
**누군가의 반응을 상상하며** 코딩할 때부터다.
다음 편에선 이 입력을 **조건문 if와 연결해보자.**
단순한 입력이 조건이 되고,
조건이 흐름이 되고,
그 흐름이 프로그램이 된다.
당신의 다음 코드는,
**더 똑똑해질 것이다.**
HANSORI.AI_Blog Labs에서 더 알아보기
구독을 신청하면 최신 게시물을 이메일로 받아볼 수 있습니다.