2-5. 파이썬 입력과 출력 다루기: input()과 print() 쉽게 익히기

in #python • yesterday

입력하고 출력하기

지난 글에서는 for와 while로 반복 작업을 처리해 봤어요. 이번에는 프로그램과 사람이 주고받는 가장 기본적인 방법, 입력과 출력을 다뤄보겠습니다. 사용자가 값을 넣으면 프로그램이 처리하고 결과를 보여 주는 흐름이죠. 작은 계산기든, 나중에 만들 프로그램이든 이 흐름은 계속 등장합니다.

input()으로 사용자 입력 받기

input 함수가 사용자 입력을 받아 변수에 저장하는 흐름

파이썬에서 키보드 입력을 받을 때는 input()을 씁니다. 괄호 안에 안내 문구를 넣으면 사용자가 무엇을 입력해야 하는지 알 수 있어요.

name = input("이름을 입력해 주세요: ")
print(name)

프로그램을 실행하면 안내 문구가 먼저 보이고, 입력을 마친 뒤 엔터를 누르면 그 내용이 name에 저장됩니다. 여기서 기억할 점 하나! input()은 입력한 내용을 문자열(str) 로 돌려줍니다. 숫자를 입력해도 숫자형이 되는 건 아니에요.

age = input("나이를 입력해 주세요: ")
print(type(age))  # <class 'str'>

처음에는 저도 숫자처럼 보이니까 바로 계산될 줄 알았어요. 그런데 age + 1을 하면 오류가 납니다. 겉모습은 숫자여도 실제 자료형은 글자이기 때문이죠. 입력값을 숫자로 계산하려면 int()나 float()로 바꿔야 합니다.

입력값을 숫자로 바꿔 계산하기

문자열 입력과 숫자 변환 뒤 계산하는 비교

정수 입력은 int(), 소수 입력은 float()를 사용합니다. 변환한 결과를 변수에 저장하면 다음 계산에 쓸 수 있어요.

age = int(input("나이를 입력해 주세요: "))
next_age = age + 1
print("내년 나이:", next_age)

안쪽부터 읽으면 input()으로 입력받고, int()로 정수로 바꾼 뒤 age에 저장하는 구조입니다. 괄호가 겹쳐 좀 낯설 수 있지만, 동작은 순서대로예요.

입력한 내용이 숫자로 바꿀 수 있는 값이 아니라면 변환 중 오류가 납니다. 예를 들어 나이를 묻는데 스물이라고 쓰면 int()는 이를 정수로 바꾸지 못해요. 초보 단계에서는 우선 입력 안내를 구체적으로 적고, 숫자를 기대하는 자리에는 숫자를 입력해 보세요. 입력 오류를 친절하게 처리하는 방법은 뒤의 예외 처리 편에서 다시 만날 수 있습니다.

print()로 결과를 보기 좋게 출력하기

출력 전후에 안내 문구와 계산 결과를 정리한 모습

print()는 화면에 값을 보여 줍니다. 값 여러 개를 쉼표로 나눠 넣으면 사이에 공백을 두고 출력해요.

name = "민지"
score = 87
print("이름:", name, "점수:", score)

문자열 안에 변수 값을 자연스럽게 넣고 싶을 때는 f-string도 편합니다. 문자열 앞에 f를 붙이고, 변수 이름을 중괄호로 감싸면 됩니다.

print(f"{name}님의 점수는 {score}점입니다.")

print()에는 출력 사이의 구분자를 정하는 sep과, 출력 끝에 붙이는 값을 정하는 end도 있어요. 기본 구분자는 공백이고, 기본 끝 문자는 줄바꿈입니다.

print("사과", "바나나", sep=", ")
print("진행 중...", end=" ")
print("완료")

매번 옵션을 쓸 필요는 없지만, 출력 결과를 정돈할 때 유용합니다. 디버깅할 때 변수 값을 확인하려고 print()를 넣는 것도 흔한 방법이에요. 다만 출력할 내용이 많아지면 어떤 값인지 알아보기 어렵습니다. print(f"현재 점수: {score}")처럼 이름을 붙여 주면 훨씬 읽기 쉽죠.

입력부터 출력까지 한 번에 연결하기

이름과 점수를 받아 인사말을 출력하는 네 컷 장면

이제 입력, 처리, 출력을 하나로 이어 볼게요. 이름과 점수를 받아 점수에 5점을 더한 결과를 보여 주는 작은 프로그램입니다.

name = input("이름을 입력해 주세요: ")
score = int(input("점수를 입력해 주세요: "))
updated_score = score + 5

print(f"{name}님의 점수에 5점을 더하면 {updated_score}점입니다.")

흐름은 세 부분으로 나눌 수 있습니다.

  • 입력: input()으로 이름과 점수를 받습니다.
  • 처리: 점수를 정수로 바꾸고 5를 더합니다.
  • 출력: print()로 결과를 알려 줍니다.

이처럼 입력과 출력은 단독 기능이라기보다 프로그램의 앞뒤를 이어 주는 역할을 해요. 실행해 보고 이름이나 점수를 바꿔 입력해 보세요. 같은 코드라도 입력에 따라 결과가 달라지는 걸 확인할 수 있습니다. 어? 점수 대신 문자를 넣어 오류가 나더라도 괜찮아요. 어떤 값이 들어올지 생각해 보는 것도 프로그램을 만드는 과정이니까요.

다음은 여러 값을 담는 리스트

이번에는 input()과 print()를 이용해 프로그램이 사용자와 대화하는 기본 흐름을 만들어 봤습니다. 입력은 문자열로 시작하고, 계산이 필요하면 알맞은 자료형으로 바꿔야 한다는 점도 기억해 주세요.

다음 글에서는 입력이나 코드에서 얻은 여러 값을 리스트(List) 하나에 담는 방법을 알아볼게요. 값 하나를 변수에 넣는 데서 한 걸음 나아가, 여러 항목을 순서대로 관리하는 방법을 함께 살펴보겠습니다.

(html comment removed: aistudio:footer )

AIWD 소모임AI 자동화 오픈톡

원문: https://aiwd.kro.kr/autoblog/post/365

Sort:  

Thank you for sharing on steem! I'm witness fuli, and I've given you a free upvote. If you'd like to support me, please consider voting at https://steemitwallet.com/~witnesses 🌟