오늘은 일정이 있어서 15시부터 참석했다,, LMS가 벌써 밀렸지만 주말에 빨리 끝내놔야겠다,,
LMS를 아직 못했기 대문에 풀잎스쿨만 먼저 기록해봤다.
오늘 파이썬 마스터는
Unit 29. 함수 사용하기
Unit 30. 함수에서 위치 인수와 키워드 인수 사용하기
Unit 31. 함수에서 재귀호출 사용하기
Unit 32. 람다 표현식 사용하기
이렇게 총 네 유닛을 진행했다.
함수의 기초적 내용들은 알고 있다고 생각해서 조금 어려운 부분만 작성하였다.

<함수 실행 순서>
1. 파이썬 스크립트 최초 실행
2. hello 함수 호출
3. hello 함수 실행
4. print 함수 실행 및 'Hello, world!' 출력
5. hello 함수 종료
6. 파이썬 스크립트 종료
return으로 함수에서 빠져나오기
>>> def not_ten(a):
... if a == 10:
... return
... print(a, '입니다.', sep='')
...
>>> not_ten(5)
5입니다.
>>> not_ten(10)
>>>
이렇게 조건문 다음에 retrun만 써줌으로써 a가 10일때 함수에서 빠져나올 수 있다.
함수에서 값을 여러개 반환하기

이렇게 리턴 다음에 ,(콤마)를 이용하여 여러개의 값을 반환할 수 있다.
이때 반환되는 a+b, a-b 는 사실 (a+b,a-b) 튜플로 반환되는 것이다.
def mul(a, b):
c = a * b
return c
def add(a, b):
c = a + b
print(c)
d = mul(a, b)
print(d)
x = 10
y = 20
add(x, y)
이 코드를 그림으로 나타내면 다음과 같다.

설명하자면, x, y는 전역변수이기 때문에 오른쪽의 전역 프레임에 들어가고, 함수 호출 전에는 mul과 add 함수가 비어있게 된다.
그 후, 함수를 호출하게 되면 스택 프레임에 값이 차곡차곡 쌓이는 방식이다.
사실 스택 프레임이 아래로 쌓이고, 위로 사라진다고 하는데, 이게 무슨말인지는 잘 모르겠다,,,
위치인수 : 함수에 인수를 순서대로 넣는 방식을 위치 인수라고 한다.
>>> x = [10, 20, 30]
>>> print_numbers(*x)
10
20
30
인수를 순서대로 넣을때, 리스트,튜플값을 넣고싶다면 를 앞에 붙여 언패킹 하면 된다!
딕셔너리 타입일경우, 를 두번 사용해야한다. 한번만 사용할시 key값만 출력된다!
가변인수
def 함수이름(*매개변수):
코드
가변인수는 매개변수 수를 정해주지 않는것을 말한다. 앞서 배운 언패킹과 위치인수를 이때 사용한다.
키워드인수
>>> personal_info(name='홍길동', age=30, address='서울시 용산구 이촌동')
이름: 홍길동
나이: 30
주소: 서울시 용산구 이촌동
키워드인수는 이처럼 순서에 상관없이 키워드를 인수에 적어주는것을 말한다.
def 함수이름(**매개변수):
코드
이런식으로 매개변수 앞에 **를 붙여 사용한다.
unit 31은 코딩도장 파트에 따로 정리를 해두었고, 람다는 아직 map, filter의 사용방법이 완전히 익지 않아서 추후 다시 정리를 하는걸로...
오늘은 2021년의 마지막 날이다. 어찌어찌 아이펠 한주가 흘러간것 같다. 사실 이번주는 종강한지도 얼마 안됐고, 일정이 많아서 아이펠에 집중을 잘 못한것 같다.. 어쩌다보니 스터디도 많이 신청한것 같은데 내년에는 올해보다 더욱 발전할 수 있는 해가 되었으면 좋겠다!
반년을 아이펠과 함께 열심히 , 꾸준히 해보자 화이팅!!!!