[전역변수]
- 함수 밖에서 선언된 변수로 어디에서나 사용 가능하다. 단, 함수 안에서 수정할 수는 없다.
number = 10
def print_number():
print(f'number:{number}')
print_number()
# number:10
number2 = 20 # 얘는 전역변수
def print_number2():
number2 = 100 # 얘는 지역변수
print(f'number2:{number2}')
print_number2()
print(f'number2:{number2}')
'''
number2:100
number2:20
'''
위 코드 예시에서 함수 밖에서 선언된 변수 numbers2는 전역 변수 이고, 함수 안에서 수정된 number2는 지역 변수라고 할 수 있다. 동명이인 관계라고 할 수 있다. 다시 말해, 둘이 아무 관계도 아니고 그냥 이름만 같다.
[지역변수]
- 함수 안에서 선언된 변수로, 함수 안에서만 사용 가능한 변수를 지역변수라고 한다.
def print_number3():
number3 = 150
print(f'number3:{number3}')
print_number3() # 얘 먼저 실행 후
print(number3) # 얘 실행해보겠다.
#number3:150
'''
Traceback (most recent call last):
File "c:\Users\Jupiter\Desktop\mygit\LearnInZeroBase\파이썬 중급\2_전역변수와지역변수.py", line 23, in <module>
print(number3)
NameError: name 'number3' is not defined. Did you mean: 'number'?
'''
다음과 같이 지역 변수는 지역 (함수) 밖에서는 사용할 수 없다.
[global 키워드]
- global을 사용하면 함수 안에서도 전역변수의 값을 수정할 수가 있다.
#global 키워드
number4 = 20 # 얘는 전역변수
def print_number2():
global number4 # global 선언
number4 = 100 # 얘는 위에서 선언한 전역변수와 동일한 애
print(f'number2:{number4}')
print_number2()
print(f'number2:{number4}')
'''
number2:100
number2:100
'''
함수 안에서 global 선언을 하자, 함수 안의 변수도 전역변수가 되었다.
[실습1] 사용자가 가로 세로 길이를 입력하면 삼각형과 사각형 넓이를 출력해주자.
def print_area():
print('사각형 넓이는 {}'.format(width*height))
print('삼각형 넓이는 {}'.format(width*height//2))
width = int(input('가로 길이 : '))
height = int(input('세로길이 : '))
print_area()
'''
가로 길이 : 20
세로길이 : 30
사각형 넓이는 600
삼각형 넓이는 300
'''
입력 받은 전역 변수를 함수 내부에서 사용하여 return한 예)
[실습2] 방문객 수를 카운트하는 함수
total_visit = 0
def count_total_visit():
global total_visit
total_visit += 1
print(f'방문객 수는 {total_visit}명 입니다.')
count_total_visit()
count_total_visit()
count_total_visit()
'''
방문객 수는 1명 입니다.
방문객 수는 2명 입니다.
방문객 수는 3명 입니다.
'''
global 키워드를 써서 전역 변수의 값을 수정하는 함수를 만들었다.
'AboutPython' 카테고리의 다른 글
[파이썬] 모듈 사용, import, from, as 키워드 (0) | 2022.05.01 |
---|---|
[파이썬] 모듈, random 모듈을 이용한 사용자 모듈 실습 (0) | 2022.05.01 |
[파이썬] lambda 키워드 (0) | 2022.05.01 |
[파이썬] 중첩함수 (0) | 2022.04.30 |
[파이썬] 인수와 매개변수, 매개변수의 개수를 모를 때 (0) | 2022.04.29 |