○ global
- 변수는 지역변수와 전역변수로 나눌 수 있다. 지역 범위 내에서 전역 변수를 사용해야 할 경우 global 함수를 사용한다.
1. 함수내에 지역 변수 없이 그대로 전역변수 호출
a = 7 # 전역 변수
def test():
print(a) # 전역 변수의 값 출력(7)
test()
print(a) # 전역 변수의 값 출력(7)
2. 함수내에 지역 변수 선언 후 출력 결과 확인
a = 7 # 전역 변수
def test():
a = 5 # 지역 변수 선언
print(a) # 지역 변수의 값 출력(5)
test()
print(a) # 전역 변수의 값 출력(7)
3. 함수 내에서 전역 변수 값을 수정
a = 7 # 전역 변수
def test():
global a # 전역 변수 호출
a = 5 # 전역 변수 값 수정
print(a) # 수정된 변수의 값 출력(5)
test()
print(a) # 전역 변수의 값 출력(5)
○ lambda
- lambda는 이름 없는 함수이다.
º 기본 형식
def plus(a):
return a+5
print(plus(2)) # 7이 출력
º lambda 사용(lambda 매개변수: 식)
plus = lambda a: a+5 # 람다는 익명 함수이므로 사용을 할려면 변수에 저장을 해야함.
print(plus(2)) # 7이 출력
º (lambda 매개변수: 식)(인수)
print((lambda a: a+5)(2)) # 혹은 한번 쓸 경우 이런 식으로 써도됨
º map함수를 이용한 lambda
print(list(map(lambda a: a+2, [3,4,5]))) # [5,6,7] 출력
º 조건문 사용
- lambda 매개변수들: 식1 if 조건식 else 식2
a = [1,2,3,4,5,6,7,8,9]
print(list(map(lambda x : str(x) if x%3==0 else x, a)))
# [1, 2, '3', 4, 5, '6', 7, 8, '9'] 출력
# lambda에서 if를 쓰면 반드시 else를 써야한다. 그러지 않으면 오류 발생.
- lambda 매개변수들: 식1 if 조건식1 else 식2 if 조건식2 else 식3
a = [1,2,3,4,5,6,7,8,9]
print(list(map(lambda x : str(x) if x==1 else float(x) if x==2 else x+2, a)))
# ['1', 2.0, 5, 6, 7, 8, 9, 10, 11] 출력
# 람다에서는 elif가 되지 않으므로 if를 사용한다.
º 리스트 두 개를 이용한 람다식
a = [1,2,3]
b = [4,5,6]
print(list(map(lambda x, y : x + y, a, b)))
# [5, 7, 9] 출력됨