AI학습 9

이유진·2024년 6월 27일

-- 13.람다함수.ipynb --

1. 람다 함수(일회용 함수)

  • 단일문으로 표현되는 익명함수
  • 코드상에서 한 번만 사용되는 기능이 있을 때, 굳이 함수로 만들지 않고 일회성으로 만들어 사용
  • 함수 또한 클래스를 통해 생성된 객체
  • return 형

def square(x):
return x**3

print(square(5))

객체

lambda x: x **2

진짜 함수를 선언한 것이 맞는지 확인

익명함수에 이름을 붙여주는 행위

test = lambda x: x**2
print(test(6))

이런 식으로도 잘 쓰이지 않는다

다른 함수와 같이 많이 쓰인다.

print((lambda x : x**2)(7))

sorted() : 정렬하는 함수.

key 매개변수. -> 어떤 방식으로 정렬을 할 것인지를 지정

key 속성에는 대개 함수가 들어간다.

datas = [' watermelon ',' apple ',' mandarin', 'plum']

print(sorted(datas))

def func1(data):
return len(data.strip())

sorted() 사용시 key 전달 전과 후를 비교!

print(sorted(datas))
print(sorted(datas, key = func1)) # 함수의 사용이 아닌 적용이기 때문에 소괄호는 넘기지 않는다.

print(sorted(datas, key=lambda data : len(data.strip())))

2. map함수

  • 각 요소를 주어진 수식에 따라 변형하여 새로운 값을 반환
  • 요소의 개수는 차이는 없다.

num = [1,2,3,4,5,6,7,10,11,12,15,16]

result = list(map(lambda n : n**2, num))
print(result)

3. filter 함수

  • 람다가 유용하게 사용되는 대표적인 함수
  • 특정 조건을 만족하는 요소만 남기고 필터링 시킴 (True or False)
  • 필터링을 해준다 라는것은 요소의 개수가 달라질 수 있다는 것.

num = [1,2,3,4,5,6,7,10,11,12,15,16]

result = list(filter(lambda n : n%2 == 0, num))
print(result)

4. 콜백 함수

  • 우리가 직접 호출하지 않고 다른 함수에 의해서 호출되는 함수

def wish():
print('집 가기 10분전')

def callBack(func):
func()

callBack(wish)

-- 14.변수의범위.ipynb --

1. scope

  • 변수에 접근할 수 있는 범위
  • local : 가장 가까운 함수 안 범위
  • global : 함수 바깥의 변수 또는 import된 module

num1 = 10
num2 = 30
def updateNum():
num2 = 20
print(num2) # 함수호출이 종료되면 함수를 실행할 때 필요했던 변수 선언들은 제거.

print(num1)
updateNum()
print(num2)

locals() : 로컬 변수를 확인하는 함수

globals() : 글로벌 변수를 확인하는 함수

num1 = 10

def func1():
num2 = 20
print(num2)
print('num1이 글로벌 변수가 맞아? : ','num1' in locals())

func1()

num1 = 10

def func2():
num2 = 20
print(num2)
print('num1이 글로벌 변수가 맞아? : ','num1' in globals())

func2()

num1 = 10

def func3():
num1 = 100
num2 = 20
print(num2)
print('num1이 로컬변수 변수가 맞아? : ','num1' in locals())

func3()

2. global 키워드

  • 함수 내부에서 로컬 변수가 아닌 글로벌 변수로 사용하게 함

wallet = 100000

def buy_coffee():
wallet -= 4500 # 오류가 생기는 이유는 함수 내부에서 충돌때문

wallet = 100000

def buy_coffee():
global wallet # 이 코드를 실행한 이후 부터 wallet은 global 변수로 사용된다.
wallet -= 4500

print(wallet)
buy_coffee()
print(wallet)

profile
독해지자

0개의 댓글