콘솔 입력과 출력 다루기

in #krsuccess4 days ago

콘솔에서 입력 받고 결과 출력하기: 사용자와 대화하는 첫걸음

알고리즘 미니 프로젝트까지 했다면, 이제 “사용자랑 티키타카”하는 단계로 넘어가야 해요.
사실 콘솔 기반 프로그램은 엄청 단순해 보이지만, 입력 → 처리 → 출력 흐름만 제대로 잡아도 프로그램이 갑자기 “살아있는 느낌”이 납니다. 나도 처음에 이 파트에서 좀 헤맸거든요… 입력 형식이랑 개행 때문에요. 음…

Sunriseforever


1) 콘솔 입력과 출력이 뭔데?

  • 입력: 사용자가 키보드로 뭔가를 넣는 것
  • 출력: 프로그램이 화면에 결과를 보여주는 것
  • 핵심: “사용자가 뭘 줬을 때, 나는 뭘 해줄 건지”를 정하는 과정이에요.

그리고 이 흐름은 앞으로 만들 거의 모든 프로그램의 기본이 됩니다. 솔직히 말하면, 큰 프로그램도 결국은 다 이거 반복이더라구요.

Simon


2) 가장 기본: input() 으로 입력받기

파이썬을 쓴다고 가정하고 설명할게요. (바이브 코딩이니까 부담 없게!)

name = input("이름을 입력하세요: ")
print("안녕, " + name + "!")
  • input()은 사용자가 입력한 값을 문자열로 가져옵니다.
  • 그래서 숫자를 입력받아도, 일단은 문자열이에요. 어? 여기서 나도 한번 당황했었죠.

Michael_Kastelic

숫자로 계산하려면?

예를 들어 사용자가 10을 입력했다고 해도, input() 결과는 "10" 같은 문자열이거든요.
그래서 계산하려면 형 변환이 필요합니다.

age_str = input("나이를 입력하세요: ")
age = int(age_str)

print("내년이면", age + 1, "살이 됩니다!")

음… 솔직히 말하면, 이거 안 하고 연산하면 에러 나요. “문자열끼리 더하기는 되는데, 빼기는 안 되지…” 같은 식으로요. 그래서 처음엔 제가 디버깅한다고 땀 났습니다. (실제로요)


3) print() 출력은 이렇게 쓰면 돼요

print()는 화면에 값을 보여주는 도구예요.

x = 3
y = 5
print(x, y)          # 쉼표면 기본 구분자(공백)로 출력됨
print("x=", x)      # 문자열 + 값 형태도 가능

줄바꿈이 자동으로 되는 느낌?

print()는 기본적으로 줄바꿈을 포함해서 출력해요.
그래서 보통 “한 줄 처리”에 잘 맞습니다.

Michael_Kastelic


4) “프롬프트(안내문)”는 사용자 친화성의 시작

input("질문: ")에서 들어가는 문자열은 사용자에게 보여주는 안내문이에요.
이걸 안 넣으면… 사용자는 “어? 지금 뭘 입력하라는 거지?” 하고 멍해질 수 있죠.

answer = input("1 또는 2를 입력하세요: ")
print("당신이 입력한 값은:", answer)

이런 식으로 안내문을 잘 넣으면, 프로그램이 훨씬 “친절”해져요. 사실 이게 생각보다 큰 차이입니다. 나름 체감이 확 옵니다.

Pexels


5) 흔한 실수 3가지 (나의 실패담 포함)

실수 1) 입력을 숫자로 생각했는데 문자열이었을 때

a = input("첫 수: ")
b = input("둘 수: ")
print(a + b)   # "10" + "2" = "102" 이런 식으로 나올 수 있음

이럴 땐 보통 이렇게 고쳐요:

a = int(input("첫 수: "))
b = int(input("둘 수: "))
print(a + b)

실수 2) 공백 때문에 값이 이상하게 들어올 때

사용자가 “여기 공백까지 넣었나?” 싶을 때가 있어요. 이럴 때는 strip()을 자주 써요.

text = input("입력: ").strip()
print("처리된 값:", text)

실수 3) 입력 단계에서 뭔가를 “기다리는데” 화면이 멈춘 것처럼 보일 때

콘솔에서는 input()에서 사용자가 입력할 때까지 프로그램이 멈춰있는 거예요.
그래서 내가 “왜 안 돌아가지?” 하다가, 사실은 “내가 아직 입력을 안 했구나…” 이런 경우가 꽤 있었습니다. 음… 사람이라서요.


6) 미니 예제: 입력을 받아서 요약 출력해보기

이제 진짜 감 잡히게, 입력 받고 바로 출력하는 작은 예제를 하나 가볼게요.

name = input("이름을 입력하세요: ").strip()
favorite = input("좋아하는 걸 한 가지 입력하세요: ").strip()

print("좋아하는 거 기록 완료!")
print("사용자:", name)
print("좋아하는 것:", favorite)

이걸 해보면 느낌이 와요.
“아, 프로그램이 사용자 정보를 받아서 화면에 다시 보여주네?”
바로 이거예요. 다음 파트(조건에 따른 메시지 출력)에서는 여기에 판정(조건문)을 붙여서 더 재미있게 만들어볼 겁니다.


7) 다음 글에서 할 것: 조건문으로 메시지 바꾸기

5-1에서 만든 건 딱 “사용자 입력 → 결과 출력” 정도였죠.
다음 5-2에서는 여기서 한 단계 더 들어가요.

  • 사용자가 입력한 값에 따라
  • 다른 메시지를 출력하고
  • “프로그램이 판단하는 느낌”을 주는 것

예를 들면 이런 거요:

  • 점수를 입력하면 합격/불합격을 보여주기
  • 숫자를 입력하면 짝수/홀수를 알려주기
  • 메뉴를 입력하면 해당 기능을 골라 실행하기

그럼 이제, 사용자가 뭘 넣었는지에 따라 말을 바꾸는 시간!
다음 글에서 바로 이어서 가봅시다.