[Python] 7-2장 지역변수, 전역변수, 디폴트 인수, 키워드 인수, 가변인자

지역변수

- 함수 안에서 생성된 변수

- 함수 내부에서만 사용 가능. 외부에서 출력 불가능

- 함수가 종료되면 사라짐

def calculate_area(radius):
    result = 3.14 * radius ** 2  # result는 지역변수
    return result

r = float(input("원의 반지름: "))
area = calculate_area(r)
print(result)  # 오류

 

 

 

전역변수

- 함수 바깥에서 생성된 변수

- 프로그램 내 어디서나 사용 가능

def calculate_area(radius):
    result = 3.14 * radius ** 2
    return result

r = float(input("원의 반지름: "))
area = calculate_area(r)  # area는 전역변수
print(area)

 

 

- 함수 안에서 전역변수 사용

: 기본적으로 함수 안에서 전역변수 사용하면 전역변수와 같은 이름의 지역변수 생성됨

: 함수 안에 'global 전역변수' 를 추가하면 전역변수를 함수 안에서 사용 가능

def 함수이름():
    global 전역변수
    # 전역변수 사용 가능
def calculate_area(radius):
    global area  # 함수 안에서 전역변수 사용 가능
    area = 3.14 * radius ** 2
    return

area = 0
r = float(input("원의 반지름: "))
calculate_area(r)
print(area)

 

 

 

디폴트 인수

- 함수 매개변수의 기본값

- 인수가 부족한 경우 기본값을 넣어줌

def greet(name="홍길동", msg="안녕"):  # 인수를 입력하지 않으면 기본값이 들어감
    print(name, msg)
    
greet()  # 홍길동 안녕
greet("철수")  # 철수 안녕
greet("철수", "좋은 아침")  # 철수 좋은 아침

 

 

 

키워드 인수

- 인수의 이름을 명시적으로 지정해서 전달

- 인수의 위치와 매개변수의 위치 달라도 이름으로 구분

- 위치 인수(위치에 따라 인수 전달)는 키워드 인수 뒤에서는 사용 불가

def power(x, y):
    return x ** y

print(power(10, 2))  # 100
print(power(2, 10))  # 1024
print(power(y=2, x=10))  # 100

 

 

 

가변인자

- 서로 다른 개수의 값을 넣을 때는 *로 시작하는 매개변수 사용

def profile(name, *language):
    print("이름:", name, ", 언어: ", end="")
    for lang in language:
        print(lang, end=" ")
profile("홍길동", "한국어", "영어")  # 이름: 홍길동 , 언어: 한국어 영어