변수와 입력 사용하기

Tasker_Jang·2026년 2월 1일

들어가며

숫자 계산만으로는 실용적인 프로그램을 만들기 어렵습니다. 계산 결과를 저장하고, 사용자로부터 값을 입력받을 수 있어야 진짜 프로그램이 되죠. 이번 포스트에서는 파이썬의 변수(Variable)입력(Input)에 대해 알아보겠습니다.

변수란?

변수(Variable)는 값을 저장하는 공간입니다. 수학에서 x = 10처럼 변수를 사용하듯, 프로그래밍에서도 데이터를 변수에 저장하여 사용합니다.

변수 만들기

파이썬에서 변수를 만드는 방법은 간단합니다.

변수이름 =

예시:

x = 10
name = 'Python'
pi = 3.14

이를 "변수 이름에 값을 할당(assign)한다"고 표현합니다.

등호(=)의 의미

프로그래밍에서 =는 수학의 "같다"가 아니라 "할당하다"는 의미입니다.

x = 10  # x에 10을 할당 (저장)

만약 "같다"를 비교하고 싶다면 == 연산자를 사용합니다.

x = 10
print(x == 10)  # True (x가 10과 같은지 비교)
print(x == 5)   # False
연산자의미예시
=할당 (값을 저장)x = 10
==비교 (같은지 확인)x == 10True

변수 이름 규칙

변수 이름을 지을 때는 다음 규칙을 반드시 따라야 합니다.

필수 규칙 (지키지 않으면 에러)

  1. 영문 문자, 숫자, 밑줄(_)만 사용 가능

    name = 'Python'      # ✅
    user_age = 25        # ✅
    value1 = 100         # ✅
    
    user-name = 'Kim'    # ❌ 하이픈 불가
    2nd_value = 50       # ❌ 숫자로 시작 불가
  2. 숫자로 시작할 수 없음

    age1 = 20    # ✅
    1age = 20    # ❌ SyntaxError
  3. 파이썬 예약어는 사용 불가

    if = 10      # ❌ 'if'는 예약어
    for = 20     # ❌ 'for'는 예약어
    class = 30   # ❌ 'class'는 예약어

    주요 예약어: if, for, while, def, class, return, True, False, None

  4. 대소문자를 구분함

    name = 'Alice'
    Name = 'Bob'
    NAME = 'Charlie'
    # 위 세 변수는 모두 다른 변수입니다

권장 규칙 (더 나은 코드 작성)

  1. 의미 있는 이름 사용

    # 나쁜 예
    a = 25
    x = 'Kim'
    
    # 좋은 예
    user_age = 25
    user_name = 'Kim'
  2. 스네이크 케이스(snake_case) 사용

    # 파이썬 권장 스타일 (PEP 8)
    user_name = 'Python'
    total_price = 15000
    max_value = 100
  3. 상수는 대문자 사용

    PI = 3.14159
    MAX_SIZE = 100
    DEFAULT_COLOR = 'blue'

변수 여러 개 한 번에 만들기

파이썬은 여러 변수를 한 줄에 동시에 만들 수 있습니다.

같은 값으로 초기화

x = y = z = 10
print(x, y, z)  # 10 10 10

다른 값으로 초기화

x, y, z = 10, 20, 30
print(x)  # 10
print(y)  # 20
print(z)  # 30

이를 언패킹(unpacking)이라고 합니다.

두 변수의 값 바꾸기

다른 언어에서는 임시 변수가 필요하지만, 파이썬은 매우 간단합니다.

# 다른 언어의 일반적인 방법
a = 10
b = 20

# 임시 변수 필요
temp = a
a = b
b = temp

print(a, b)  # 20 10
# 파이썬의 간편한 방법
a = 10
b = 20

a, b = b, a  # 값 교환

print(a, b)  # 20 10

변수끼리 계산하기

변수는 값을 저장하고 있으므로, 변수끼리 계산할 수 있습니다.

x = 10
y = 20

result = x + y
print(result)  # 30

# 다양한 연산
print(x * y)   # 200
print(y - x)   # 10
print(y / x)   # 2.0

변수 삭제하기

del 키워드로 변수를 삭제할 수 있습니다.

x = 10
print(x)  # 10

del x
print(x)  # NameError: name 'x' is not defined

변수를 삭제하면 메모리에서 해제되며, 이후 접근하면 에러가 발생합니다.

복합 대입 연산자

변수의 값을 업데이트할 때 산술 연산 후 할당하는 작업을 간결하게 처리할 수 있습니다.

# 일반적인 방법
x = 10
x = x + 5
print(x)  # 15

# 복합 대입 연산자 사용
x = 10
x += 5     # x = x + 5와 동일
print(x)  # 15

다양한 복합 대입 연산자

x = 10

x += 5   # x = x + 5
print(x) # 15

x -= 3   # x = x - 3
print(x) # 12

x *= 2   # x = x * 2
print(x) # 24

x /= 4   # x = x / 4
print(x) # 6.0

x //= 2  # x = x // 2
print(x) # 3.0

x %= 2   # x = x % 2
print(x) # 1.0

x = 2
x **= 3  # x = x ** 3
print(x) # 8
연산자의미예시
+=더한 후 할당x += 5
-=뺀 후 할당x -= 3
*=곱한 후 할당x *= 2
/=나눈 후 할당x /= 4
//=정수 나눈 후 할당x //= 2
%=나머지 할당x %= 2
**=거듭제곱 후 할당x **= 3

사용자 입력 받기: input() 함수

input() 함수는 사용자가 입력한 값을 가져오는 함수입니다.

기본 사용법

input()

코드를 실행하면 프로그램이 일시 정지되고, 사용자의 입력을 기다립니다. 사용자가 무언가 입력하고 엔터를 누르면 그 값을 반환합니다.

입력값을 변수에 저장

x = input()
print(x)

실행 결과:

(여기서 사용자가 'Hello' 입력)
Hello

프롬프트 메시지 추가

괄호 안에 문자열을 작성하면 프롬프트(prompt) 메시지를 표시할 수 있습니다.

name = input('이름을 입력하세요: ')
print('안녕하세요,', name, '님!')

실행 결과:

이름을 입력하세요: 홍길동
안녕하세요, 홍길동 님!

프롬프트를 사용하면 사용자가 무엇을 입력해야 하는지 알 수 있어 가독성이 높아집니다.

input()의 함정: 항상 문자열 반환

중요: input() 함수는 항상 문자열(str) 타입을 반환합니다.

x = input('숫자를 입력하세요: ')
print(type(x))  # <class 'str'>

숫자를 입력해도 문자열로 저장됩니다!

문제 발생 예시

x = input('첫 번째 숫자: ')  # 10 입력
y = input('두 번째 숫자: ')  # 20 입력

result = x + y
print(result)  # 1020 (문자열 연결!)

예상: 30
실제: 1020 (문자열 '10' + '20' = '1020')

해결: int() 함수로 형변환

숫자로 계산하려면 int() 함수로 문자열을 정수로 변환해야 합니다.

x = int(input('첫 번째 숫자: '))  # 10 입력
y = int(input('두 번째 숫자: '))  # 20 입력

result = x + y
print(result)  # 30 (정상적인 덧셈)

형변환 함수

# 문자열 → 정수
x = int('10')
print(x, type(x))  # 10 <class 'int'>

# 문자열 → 실수
y = float('3.14')
print(y, type(y))  # 3.14 <class 'float'>

# 정수 → 문자열
z = str(100)
print(z, type(z))  # 100 <class 'str'>

실전 예제: 두 수의 합 계산

# 사용자로부터 두 정수를 입력받아 합을 출력하는 프로그램

num1 = int(input('첫 번째 정수를 입력하세요: '))
num2 = int(input('두 번째 정수를 입력하세요: '))

total = num1 + num2
print('두 수의 합:', total)

실행 결과:

첫 번째 정수를 입력하세요: 15
두 번째 정수를 입력하세요: 27
두 수의 합: 42

여러 값을 한 번에 입력받기

split() 메서드를 사용하면 공백으로 구분된 값을 한 번에 입력받을 수 있습니다.

# 한 줄에 두 숫자 입력
a, b = input('두 숫자를 띄어쓰기로 입력: ').split()
a = int(a)
b = int(b)

print(a + b)

더 간결한 방법:

a, b = map(int, input('두 숫자를 띄어쓰기로 입력: ').split())
print(a + b)

실행 결과:

두 숫자를 띄어쓰기로 입력: 10 20
30
profile
ML Engineer 🧠 | AI 모델 개발과 최적화 경험을 기록하며 성장하는 개발자 🚀 The light that burns twice as bright burns half as long ✨

0개의 댓글