프로그램을 대화형으로 만들어주는 두 함수
초기 파이썬 프로그램은 대부분 같은 모양을 따라가요. input()으로 사용자에게 뭔가를 묻고, 그 답으로 뭔가를 하고, print()로 결과를 다시 알려주는 거예요. 이 두 내장 함수가 여러분의 코드와 세상을 이어주는 통로예요.
하나씩 차례로 볼게요.
print(): 출력 쓰기
가장 간단하게는, print()가 터미널에 텍스트 한 줄을 씁니다:
hello라는 단어를 내보내고 그 뒤에 줄바꿈을 붙여요. 이 줄바꿈 덕분에 연이은 print 호출이 화면에서 서로 구분됩니다.
한 호출에 여러 값을 넘길 수 있고, 파이썬이 값 사이에 공백을 끼워 넣어줍니다:
출력:
Name: Ada Age: 36
값이 꼭 문자열일 필요는 없어요. print는 각 인자에 str()을 호출해 주니까 타입을 자유롭게 섞어도 됩니다:
구분자 바꾸기
값 사이의 공백이 싫다면 sep를 쓰세요:
줄 끝 문자 바꾸기
기본적으로 print는 뒤에 줄바꿈을 붙입니다. 이걸 바꾸려면 end를 쓰세요 — 예를 들어 출력을 같은 줄에 이어 붙이려면:
end=""는 한 줄을 조각조각 이어 붙여 만들 때 쓰는 트릭이에요.
print는 stdout으로 나갑니다
기본적으로 print는 stdout(표준 출력) — 터미널 출력이 평소 나타나는 곳 — 에 씁니다. file 인자로 stderr, 파일, 또는 파일 같은 다른 객체로 리다이렉트할 수 있어요:
포맷된 출력 — 소수점 둘째 자리, 열 정렬, 큰 숫자의 쉼표 — 에는 print 안쪽에서 f-string을 쓰세요:
input(): 사용자에게서 읽기
input(prompt)는 프로그램을 멈추고, 프롬프트를 보여주고, 기다려요. 사용자가 타이핑한 내용이 — 엔터를 누르기 전까지 — 문자열로 돌아옵니다.
초보자를 자주 무는 input의 세 가지:
언제나 문자열을 돌려줍니다
사용자가 42를 쳐도 돌아오는 건 문자열 "42"예요. 바로 산술 연산을 할 수 없어요:
그래서 int(input(...))나 float(input(...))를 한 줄에 쓰는 걸 자주 보게 돼요. 사용자가 유효한 숫자가 아닌 걸 입력하면 int()가 ValueError를 던지는데, 그건 예외 처리 챕터에서 제대로 다룹니다.
프롬프트는 선택이에요
프롬프트 문자열을 넘기지 않으면 input()은 조용히 기다립니다. 거의 항상 잘못된 선택이에요 — 사용자는 뭘 요구받는지 알 수가 없거든요. 항상 분명한 프롬프트를 넘기세요:
아무것도 잘라내지 않아요
사용자가 입력한 건 앞뒤 공백까지 전부 그대로 돌아옵니다. 로직에 영향이 있다면 .strip()을 부르세요:
아주 작은 완성된 프로그램
다 모아볼까요 — 사용자 정보를 묻고 짧은 리포트를 출력하는 몇 줄의 코드예요:
열두 줄. 코드라기보다 지침서처럼 위에서 아래로 읽혀요. 이 문서들이 지향하는 스타일이 바로 그거예요.
print 기반 디버깅은 어떨까요?
"진짜 개발자들은 print 문이 아니라 디버거를 쓴다"는 말을 가끔 듣게 되실 거예요. 과장된 말이에요. print는 훌륭한 디버깅 도구예요 — 특히 작은 스크립트나 잠깐의 실험에서요. 뭔가 알아내려는 동안에는 print를 넉넉히 뿌려두고, 끝나면 걷어내세요.
작은 삶의 질 팁 두 개:
f-string 안의 =은 이름과 값을 같이 출력해 줘서, print("name =", name) 같은 반복을 많이 줄여줘요.
다음으로
print와 input으로 완전한 대화 루프가 만들어졌어요: 묻고, 읽고, 응답하기. 다음 챕터부터는 조건 — if 문과 연산자들 — 을 섞기 시작합니다. 프로그램이 본 값에 따라 무엇을 할지 결정하게 해주는 것들이에요.
자주 묻는 질문
파이썬에서 print()는 뭘 하나요?
값을 터미널에 출력해요. print("hello")는 hello를 내보내고 줄바꿈을 붙입니다. 여러 값을 쉼표로 구분해 넘기면 기본적으로 값 사이에 공백이 들어가요.
파이썬에서 input()은 어떻게 동작하나요?
input(prompt)는 프로그램을 멈춘 뒤 사용자에게 프롬프트를 보여주고, 뭔가 입력하고 엔터를 누를 때까지 기다렸다가, 입력한 내용을 문자열로 돌려줍니다. 항상 문자열이에요 — 숫자가 필요하면 int(...)나 float(...)로 감싸세요.
파이썬에서 같은 줄에 이어서 출력하려면요?
print에 end=""를 넘기세요. 기본적으로 print는 출력 뒤에 줄바꿈을 붙이는데, end를 빈 문자열(또는 다른 문자)로 바꾸면 그 줄바꿈을 대체합니다.