본문 바로가기
  • You find inspiration to create your own path !
업무 자동화/python

파이썬 학습] 변수 (Variable)

by ToolBOX01 2026. 7. 30.
반응형

■ 변수 ( Variable)

VBA 프로그램을 만들들때 변수를 정의(이름, 타입, 값 지정 하기) 하였습니다 파이썬으로 어떻게 정의 할까요?

 

1. 변수 이름 정의 규칙 (Naming Conventions)

변수 이름은 데이터를 저장하는 상자의 이름과 같습니다.  대소문자를 구분하며 영문자, 숫자, 밑줄(_)을 사용할 수 있습니다. 대소문자를 철저하게 구분합니다(my_var와 My_Var는 완전히 다른 변수). 공식 가이드(PEP 8)에 따라 소문자와 밑줄을 조합하는 스네이크 케이스(my_variable)를 주로 사용합니다.

2. 변수 타입(자료형) 지정 방법 : 동적 타이핑 (Dynamic Typing)

파이썬은 변수를 미리 선언할 필요가 없습니다. 값을 할당하는 순간 파이썬 인터프리터가 알아서 데이터 타입을 판단(추론)합니다.

# 파이썬 예시 (별도의 선언 키워드 없음)
age = 25        # int (정수형)으로 자동 지정
name = "홍길동"   # str (문자열형)으로 자동 지정
is_adult = True # bool (불리언형)으로 자동 지정

참고: 파이썬 3.5부터는 필요에 따라 타입 힌트(age: int = 25)를 사용할 수도 있지만, 필수는 아닙니다.

 

3. 값 지정 방법 (할당, Assignment)

파이썬은 여러 변수에 동시에 값을 지정하거나, 두 변수의 값을 교환(Swap)하는 작업을 한 줄로 끝낼 수 있습니다.

# 1. 여러 변수에 동시 할당
x, y = 10, 20

# 2. 변수 값 서로 바꾸기 (Temp 변수 불필요)
x, y = y, x  # x는 20, y는 10이 됩니다.

 


예시 : 2개의 정수 값을 입력 받아, 덧셈하여 출력 하는 프로그램 만들기 "calculator.py" 파일 이름 저장

# 1. 사용자에게 입력받기 (input()은 기본적으로 문자열로 받으므로 int()로 정수형 변환)
num1 = int(input("첫 번째 정수를 입력하세요: "))
num2 = int(input("두 번째 정수를 입력하세요: "))

# 2. 두 값을 더하기
result = num1 + num2

# 3. 결과 출력하기
print(f"두 정수의 합은 {result}입니다.")

 

💡 코드 핵심 포인트

  • input(): 사용자로부터 키보드 입력을 받는 함수입니다.
  • int(): input()으로 입력받은 데이터는 문자열(str) 형태이기 때문에, 덧셈 연산을 위해 int()를 사용하여 정수(Integer)로 변환해 주어야 합니다.
  • print(f"..."): 문자열 안에 변수(result)의 값을 아주 간단하고 직관적으로 쏙 집어넣어 출력할 수 있는 파이썬의 편리한 기능입니다.

 

프로그램 실행 방법 : 터마널 화면에서 아래와 같이 실행 합니다

python calculator.py

■ 전역 변수(Global Variable)

함수 바깥(최상위 레벨)에 선언되어 프로그램 전체에서 접근할 수 있는 변수를 말하며, VBA의 모듈 수준 변수(Public 또는 선언된 변수)와 비슷한 개념입니다.

1. 전역 변수란? (기본 개념)

함수 안팎에서 모두 사용할 수 있는 변수입니다.

# 전역 변수 선언
company_name = "테크컴퍼니"

def print_company():
    # 함수 내부에서도 전역 변수를 읽을 수 있습니다.
    print(f"회사 이름: {company_name}")

print_company()  # 함수를 실행 하면, "회사 이름: 테크컴퍼니" 화면에 출력

print(company_name)  # 함수 밖에서도 정상 출력

 

2. 주의할 점과 활용 방법 (global 키워드)

파이썬에서는 함수 내부에서 전역 변수의 값을 변경(수정)하려고 할 때 주의가 필요합니다. 함수 안에서 그냥 대입 연산(=)을 쓰면 전역 변수가 아니라 새로운 지역 변수(Local Variable)가 만들어지기 때문입니다.

전역 변수의 값을 함수 안에서 직접 수정하고 싶다면 global 키워드를 사용해야 합니다.

🔹 예시: global 키워드 활용

# 전역 변수
total_score = 0

def add_score(score):
    # 전역 변수 total_score를 이 함수 안에서 수정하겠다고 선언
    global total_score
    total_score += score
    print(f"현재 점수: {total_score}")

add_score(10)  # 출력: 현재 점수: 10
add_score(20)  # 출력: 현재 점수: 30
print(f"최종 전역 점수: {total_score}")  # 출력: 최종 전역 점수: 30

1. total_score: 프로그램 전체에서 접근할 수 있는 total_score라는 이름의 전역 변수를 만들고, 초기값으로 0을 저장합니다.

 

2. global total_score: 이 부분이 이 코드의 핵심입니다.

  • 파이썬은 함수 안에서 변수에 값을 대입(=, += 등)하면, 기본적으로 그 함수 안에서만 쓰이는 지역 변수(Local Variable)를 새로 만들려고 합니다.
  • 하지만 global 키워드를 쓰면 "이 함수 안에서 쓰는 total_score는 새로 만드는 게 아니라, 바깥에 있는 진짜 전역 변수야!"라고 지정해 주는 것입니다. 이 선언이 있어야만 바깥의 전역 변수 값을 안전하게 수정할 수 있습니다.

3. total_score += score: 전역 변수 0에 전달받은 score를 더해서 값을 누적합니다.

4. score에 10을 넣고 함수를 실행합니다. 전역 변수 total_score는 0 + 10이 되어 10이 되고, "현재 점수: 10"이 출력됩니다.

5. 함수 바깥(전역 공간)에서 total_score를 출력해 보면, 함수 내부에서 누적되어 변경된 최종 값 30이 그대로 유지되어 출력되는 것을 확인할 수 있습니다.

 

 

3. 실무에서의 활용 팁 (개발자 관점)

  • 상수(Constants) 관리: 프로그램 전체에서 변하지 않고 공통으로 쓰이는 설정값(예: 최대 연결 횟수, 기본 경로 등)을 전역 변수(보통 대문자로 작성)로 선언해 두고 참조용으로 활용하기 좋습니다.
  • 주의점: 전역 변수를 너무 많이 사용하면, 프로그램이 커졌을 때 어떤 함수가 변수 값을 바꿨는지 추적하기 어려워(사이드 펙트 발생) 디버깅이 힘들어집니다. 따라서 값 변경이 필요한 경우, 가급적 함수의 매개변수와 리턴값(return)을 활용하는 것이 좋은 개발 습관입니다.
반응형