점프 투 파이썬 DAY10(사용자 입출력)

정지범·2026년 9월 19일

점프 투 파이썬

목록 보기
15/37

04-2 사용자 입출력

대부분의 프로그램은 사용자로부터 값을 입력받고, 그 입력값에 따라 결과를 출력한다.

예를 들어 게시판에서 글을 작성하고 확인 버튼을 누르는 것도 하나의 입출력 과정이라고 볼 수 있다.

사용자 입력
   ↓
프로그램
   ↓
결과 출력

파이썬에서는 대표적으로

input()

을 사용하여 입력받고,

print()

를 사용하여 결과를 출력한다.


📌 목차

  • 1. 사용자 입력 활용하기

    • 1-1. input 사용하기
    • 1-2. 프롬프트를 띄워 사용자 입력받기
  • 2. 입력값을 숫자로 변환하기

    • 2-1. 정수로 변환하기
    • 2-2. 실수로 변환하기
    • 2-3. 입력과 형 변환을 한 번에 하기
  • 3. print 자세히 알기

    • 3-1. 문자열 이어 붙이기
    • 3-2. 쉼표를 이용한 출력
    • 3-3. sep 매개변수
    • 3-4. end 매개변수
  • 4. 간단한 계산기 만들기


1. 사용자 입력 활용하기

프로그램에서 사용자가 직접 값을 입력하도록 하고 싶을 때는

input()

함수를 사용한다.


1-1. input 사용하기

다음과 같이 작성해 보자.

a = input()

프로그램은 사용자가 값을 입력할 때까지 기다린다.

예를 들어

Python is fun

이라고 입력하면 변수 a에는

"Python is fun"

이라는 값이 저장된다.

a = input()

print(a)

실행 예시

Python is fun
Python is fun

⭐ input의 가장 중요한 특징

input()으로 입력받은 값은 항상 문자열(str)로 저장된다.

예를 들어

number = input()

실행 후

3

을 입력했다고 하자.

눈으로 보면 숫자 3처럼 보이지만 실제로는

"3"

이라는 문자열이다.

확인해 보면

print(type(number))

결과

<class 'str'>

가 나온다.

즉,

사용자 입력 : 3

        ↓

input()

        ↓

"3"

        ↓

str

이다.

⭐ input()의 결과는 항상 문자열이다.


1-2. 프롬프트를 띄워 사용자 입력받기

단순히

input()

만 사용하면 사용자는 어떤 값을 입력해야 하는지 알기 어렵다.

따라서 보통 입력 안내 문구를 함께 작성한다.

input("안내 문구")

예를 들어

name = input("이름을 입력하세요: ")

실행하면

이름을 입력하세요:

가 화면에 나타난다.

사용자가

pingu

라고 입력하면

name = "pingu"

가 된다.

전체 예제

name = input("이름을 입력하세요: ")

print(name)

실행 결과

이름을 입력하세요: pingu
pingu

2. 입력값을 숫자로 변환하기

앞에서 살펴본 것처럼 input()으로 받은 값은 모두 문자열이다.

따라서 다음 코드를 살펴보자.

a = input("첫 번째 숫자: ")
b = input("두 번째 숫자: ")

print(a + b)

사용자가

3
4

를 입력했다면 결과는 어떻게 될까?

34

가 출력된다.

왜냐하면 실제 변수에는

a = "3"
b = "4"

가 저장되어 있기 때문이다.

따라서

a + b

는 실제로

"3" + "4"

가 되어

"34"

가 된다.


⭐ 숫자 계산을 하려면?

입력받은 문자열을 숫자로 변환해야 한다.

정수라면

int()

실수라면

float()

를 사용한다.


2-1. 정수로 변환하기

예를 들어 나이를 입력받아 1을 더하고 싶다고 해보자.

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

age = int(age)

print(age + 1)

입력

25

결과

26

과정을 보면

input()

 ↓

"25"
문자열

 ↓

int("25")

 ↓

25
정수

가 된다.


int()

int()는 값을 정수형(int)으로 변환한다.

a = int("10")

그러면

a

에는

10

이라는 정수가 저장된다.

확인

print(type(a))

결과

<class 'int'>

2-2. 실수로 변환하기

소수점이 포함된 값을 입력받으려면 float()를 사용할 수 있다.

height = input("키를 입력하세요: ")

height = float(height)

print(height)

입력

175.5

그러면

height

는

175.5

라는 실수가 된다.

자료형을 확인하면

print(type(height))

결과

<class 'float'>

이다.


2-3. 입력과 형 변환을 한 번에 하기

보통 실제 코드에서는

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

보다 다음처럼 한 줄로 많이 작성한다.

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

처리 순서는 안쪽부터 바깥쪽이다.

int(input("나이를 입력하세요: "))
      └──────────┬───────────┘
              ① 먼저 실행

② int() 실행

예를 들어 사용자가

25

를 입력하면

input()

결과

"25"

가 나오고

int("25")

가 실행되어

25

가 된다.

따라서

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

는 최종적으로

age = 25

가 된다.


실수도 동일하다

height = float(input("키를 입력하세요: "))

사용자가

175.5

를 입력하면

"175.5"

가 먼저 만들어지고,

float("175.5")

로 변환되어

175.5

가 저장된다.


⭐ input 핵심 정리

input()
입력값 → 문자열(str)

int(input())
입력값 → 문자열 → 정수(int)

float(input())
입력값 → 문자열 → 실수(float)

3. print 자세히 알기

print()는 값을 화면에 출력할 때 사용하는 함수이다.

지금까지 가장 많이 사용했던 함수 중 하나이다.

a = 123

print(a)

결과

123

문자열도 출력할 수 있다.

a = "Python"

print(a)

결과

Python

리스트도 가능하다.

a = [1, 2, 3]

print(a)

결과

[1, 2, 3]

3-1. 문자열 이어 붙이기

파이썬에서는 문자열 리터럴을 바로 이어서 작성하면 하나의 문자열처럼 처리된다.

print("Python" "is" "fun")

결과

Pythonisfun

다음과 같은 의미이다.

print("Python" + "is" + "fun")

결과 역시

Pythonisfun

이다.

즉,

"Python" "is"

는 문자열 리터럴끼리라면

"Python" + "is"

와 비슷하게 이어진다.


⚠️ 변수에는 그대로 적용할 수 없다

다음처럼 변수 두 개를 붙여 쓰는 것은 불가능하다.

a = "Python"
b = "Study"

print(a b)

오류가 발생한다.

변수를 연결하려면

print(a + b)

처럼 +를 사용해야 한다.


3-2. 쉼표를 이용한 출력

print() 안에 여러 값을 쉼표(,)로 구분해서 넣을 수도 있다.

print("Python", "is", "fun")

결과

Python is fun

쉼표를 사용하면 값 사이에 공백이 자동으로 들어간다.

비교해보면

print("Python" + "is" + "fun")

결과

Pythonisfun

반면

print("Python", "is", "fun")

결과

Python is fun

이다.


3-3. sep 매개변수

그렇다면 왜 쉼표로 출력하면 공백이 자동으로 들어갈까?

print()에는

sep

라는 매개변수가 있기 때문이다.

sep는 출력할 값 사이에 어떤 문자를 넣을지 지정한다.

기본값은 공백이다.

즉,

print("Python", "is", "fun")

는 사실상

print("Python", "is", "fun", sep=" ")

과 같은 의미이다.


sep 변경하기

예를 들어 날짜를 출력한다고 해보자.

print("2026", "09", "19", sep="-")

결과

2026-09-19

sep를 /로 바꾸면

print("2026", "09", "19", sep="/")

결과

2026/09/19

이 된다.


다른 예제

print("Python", "Java", "C", sep=" | ")

결과

Python | Java | C

즉,

sep = separator
      구분자

라고 생각하면 쉽다.


⭐ sep 구조

print("A", "B", "C", sep="-")
A-B-C

즉,

A + sep + B + sep + C

라고 생각할 수 있다.


3-4. end 매개변수

기본적으로 print()를 실행하면 출력 후 자동으로 줄이 바뀐다.

print("Python")
print("Java")
print("C")

결과

Python
Java
C

왜냐하면 print()의 end 기본값이

"\n"

이기 때문이다.

\n은 줄바꿈 문자이다.

즉,

print("Python")

은 개념적으로

print("Python", end="\n")

과 같다.


end 변경하기

다음처럼 작성하면

print("Python", end=" ")
print("Java", end=" ")
print("C")

결과

Python Java C

가 된다.

첫 번째와 두 번째 출력의 끝에 줄바꿈 대신 공백을 넣었기 때문이다.


반복문에서 활용하기

for i in range(10):
    print(i, end=" ")

결과

0 1 2 3 4 5 6 7 8 9

만약 end를 사용하지 않는다면

for i in range(10):
    print(i)

결과는

0
1
2
3
4
5
6
7
8
9

처럼 한 줄씩 출력된다.


⭐ sep와 end 차이

둘은 매우 자주 사용되므로 확실하게 구분해 두자.

매개변수역할기본값
sep출력 값 사이를 구분공백 " "
end출력문의 마지막을 지정줄바꿈 "\n"

예를 들어

print("A", "B", "C", sep="-", end="!")

결과

A-B-C!

이다.

구조로 보면

A - B - C !
  ↑   ↑   ↑
 sep sep end

이다.


4. 간단한 계산기 만들기

지금까지 배운

input()

과

print()

를 이용하면 간단한 계산기를 만들 수 있다.

print("=== 간단한 계산기 ===")

num1 = float(input("첫 번째 숫자를 입력하세요: "))
num2 = float(input("두 번째 숫자를 입력하세요: "))

print(f"{num1} + {num2} = {num1 + num2}")
print(f"{num1} - {num2} = {num1 - num2}")
print(f"{num1} * {num2} = {num1 * num2}")

if num2 != 0:
    print(f"{num1} / {num2} = {num1 / num2}")
else:
    print("0으로 나눌 수 없습니다.")

코드 분석

먼저

num1 = float(input("첫 번째 숫자를 입력하세요: "))

사용자로부터 값을 입력받는다.

입력값은 문자열이므로

float()

를 이용해 실수로 변환한다.

예를 들어

10

을 입력했다면

"10"
 ↓
10.0

이 된다.


두 번째 숫자도 동일하다.

num2 = float(input("두 번째 숫자를 입력하세요: "))

그 다음 사칙연산 결과를 출력한다.

print(f"{num1} + {num2} = {num1 + num2}")

예를 들어

num1 = 10.0
num2 = 3.0

이라면

10.0 + 3.0 = 13.0

이 출력된다.


0으로 나누기 방지

나눗셈에서는 한 가지 주의해야 한다.

10 / 0

과 같이 0으로 나누면 오류가 발생한다.

따라서

if num2 != 0:

을 이용하여 먼저 확인한다.

if num2 != 0:
    print(num1 / num2)
else:
    print("0으로 나눌 수 없습니다.")

즉,

num2가 0이 아니다
       ↓
    나눗셈 실행
num2가 0이다
       ↓
나눗셈 실행 X
       ↓
안내 메시지 출력

의 흐름이다.


🎯 핵심 정리

문법설명
input()사용자에게 값을 입력받음
input("문구")안내 문구를 출력한 후 입력받음
int()값을 정수형으로 변환
float()값을 실수형으로 변환
print()값을 화면에 출력
sep출력 값 사이의 구분자 지정
end출력문의 마지막 문자 지정
\n줄바꿈 문자

⭐ 가장 중요한 내용 1 - input은 문자열

a = input()

사용자가

10

을 입력해도

a = "10"

이다.

즉,

input()
   ↓
무조건 str

이다.

숫자로 사용하려면

a = int(input())

또는

a = float(input())

처럼 형 변환을 해야 한다.


⭐ 가장 중요한 내용 2 - sep와 end

print("A", "B", "C", sep="-", end="!")

결과

A-B-C!

여기서

sep
↓
값과 값 사이
end
↓
출력문의 마지막

이다.

쉽게 기억하면

sep = 사이
end = 끝

이라고 기억하면 된다.


💡 한눈에 보기

name = input("이름: ")
사용자 입력 → str

age = int(input("나이: "))
사용자 입력
   ↓
문자열
   ↓
int()
   ↓
정수

height = float(input("키: "))
사용자 입력
   ↓
문자열
   ↓
float()
   ↓
실수

print("A", "B", "C", sep="-", end="!")
A-B-C!

💡 04-2에서는 input()은 문자열을 반환한다는 점과 print()의 sep, end 사용법을 확실하게 기억해 두자. 이후 파일 입출력이나 프로그램 작성에서도 계속 사용되는 기본 개념이다.

profile
성실하자:)

0개의 댓글