ch0nny_log

[빅데이터분석] Python_14. 지역변수와 전역변수 본문

빅데이터 분석(with 아이티윌)/python

[빅데이터분석] Python_14. 지역변수와 전역변수

chonny 2024. 8. 5. 15:22

b = 50  # 전역변수 선언
def variable_test():
 # 함수 호출
    a = 100
    print(f'지역변수 a의 값은: {a}')
    global b
    print(f'전역변수 b의 초기값은: {b}')
    b=200
    print(f'전역변수 b의 변경된 값은: {b}')
    
variable_test()

 

■ 필요성에 대한 코드

 

※ 전역변수 선언 할때 일관성이 있어야됨

# 전역변수 선언
total_score = 0  # 누적되는 점수를 저장하는 전역변수

def add_score(score):
    """전역변수를 사용하여 점수를 누적하는 함수"""
    global total_score  # 전역변수 사용 선언
    total_score += score
    print(f"누적된 점수: {total_score}")

def add_score_non_cumulative(score):
    """지역변수를 사용하여 누적되지 않는 점수를 계산하는 함수"""
    local_score = 0  # 매 함수 호출 시마다 초기화되는 지역변수
    local_score += score
    print(f"현재 점수 (누적되지 않음): {local_score}")

# 함수 호출 예시
print("누적 함수 실행 결과:")
add_score(10)  # 출력: 누적된 점수: 10
add_score(20)  # 출력: 누적된 점수: 30
add_score(5)   # 출력: 누적된 점수: 35

print("\n비교를 위한 누적되지 않는 함수 실행 결과:")
add_score_non_cumulative(10)  # 출력: 현재 점수 (누적되지 않음): 10
add_score_non_cumulative(20)  # 출력: 현재 점수 (누적되지 않음): 20
add_score_non_cumulative(5)   # 출력: 현재 점수 (누적되지 않음): 5

# 전역변수 선언
total_sales = 0  # 총 매출액을 저장하는 전역변수

def add_sales(sales):
    """전역변수를 사용하여 총 매출액을 누적하는 함수"""
    global total_sales  # 전역변수 사용 선언
    total_sales += sales
    print(f"누적된 총 매출액: {total_sales}")

def daily_sales(sales):
    """지역변수를 사용하여 하루의 매출만을 계산하는 함수"""
    daily_total = sales  # 하루 매출액을 저장하는 지역변수
    print(f"현재 매출액 (누적되지 않음): {daily_total}")

# 사용 예시
print("전역변수 사용:")
add_sales(1500)  # 출력: 누적된 총 매출액: 1500
add_sales(2300)  # 출력: 누적된 총 매출액: 3800
add_sales(3200)  # 출력: 누적된 총 매출액: 7000

print("\n지역변수 사용:")
daily_sales(1500)  # 출력: 현재 매출액 (누적되지 않음): 1500
daily_sales(2300)  # 출력: 현재 매출액 (누적되지 않음): 2300
daily_sales(3200)  # 출력: 현재 매출액 (누적되지 않음): 3200