파이썬 함수에 대해서 알아보자! (feat. function)
반응형
오늘은 파이썬의 함수에 대해서 알아볼 것이다.
함수를 잘 사용하면, 프로그램의 흐름을 잘 파악할 수 있다.
# 함수 # 함수란 무엇인가? # 함수를 설명하기 전에 믹서를 생각해 보자. 우리는 믹서에 과일을 넣는다. # 그리고 믹서를 사용해서 과일을 갈아 과일 주스를 만든다. 우리가 믹서에 넣는 과일은 "입력"이 되고 과일 주스는 "출력(결과값)"이 된다. # 그렇다면 믹서는 무엇인가? # (믹서는 과일을 입력받아 주스를 출력하는 함수와 같다.) # 우리가 리뷰하려는 함수가 바로 믹서와 비슷하다. 입력값을 가지고 어떤 일을 수행한 다음에 그 결과물을 내어놓는것, 이것이 바로 함수가 하는 일이다. # 우리는 어려서부터 함수에 대해 공부했지만 함수에 관해 깊이 생각해 본 적은 별로 없다. 예를 들어 y = 2x + 3도 함수이다. # 하지만 이를 수학 시간에 배운 직선 그래프로만 알고 있지 x에 어떤 값을 넣었을 때 어떤 변화에 의해서 y값이 나오는지 그 과정에 대해서는 별로 관심을 두지 않았을 것이다. # 이제 우리는 함수에 대해 조금더 생각해 보는 시간을 가져야 한다. 프로그래밍에서 함수는 정말 중요하기 때문이다. # 함수를 사용하는 이유는 무엇일까? # 프로그래밍을 하다 보면 똑같은 내용을 반복해서 작성하고 있는 자신을 발견할 때가 종종 있다. # 이때가 바로 함수가 필요한 때이다. # 즉 반복되는 부분이 있을 경우 "반복적으로 사용되는 가치 있는 부분"을 한 뭉치로 묶어서 "어떤 입력값을 주었을 때 어떤 결괏값을 돌려준다"라는 식의 함수로 작성하는 것이 현명하다. # 함수를 사용하는 또 다른 이유는 자신이 만든 프로그램을 함수화하면 프로그램 흐름을 일목요연하게 볼 수 있기 때문이다. # 마치 공장에서 원재료가 여러 공정을 거쳐 하나의 상품이 되는 것처럼 프로그램에서도 입력한 값이 여러 함수를 거치면서 원하는 결괏값을 내는 것을 볼 수 있다. # 이렇게 되면 프로그램 흐름도 잘 파악할 수 있고 오류가 어디에서 나는지도 바로 알아차릴 수 있다. 함수를 잘 사용하고 함수를 적절하게 만들 줄 아는 사람이 능력 있는 프로그래머이다. # 파이썬 함수의 구조 # 파이썬 함수의 구조는 다음과 같다. # def 함수명(매개변수): # <수행할 문장1> # <수행할 문장2> # ... # def는 함수를 만들 때 사용하는 예약어 이며, 함수 이름은 함수를 만드는 사람이 임의로 만들 수 있다. # 함수 이름 뒤 괄호 안의 매개변수는 이 함수에 입력으로 전달되는 값을 받는 변수이다. # 이렇게 함수를 정의한 다음 if, while, for문 등과 마찬가지로 함수에서 수행할 문장을 입력한다. # 간단하지만 많은 것을 설명해주는 다음 예를 보자. def add(a, b): return a + b # 위 함수는 다음과 같이 풀이된다. # "이 함수의 이름(함수 이름)은 add이고 입력으로 2개의 값을 받으며 결과값은 2개의 입력값을 더한 값이다" # 여기에서 return은 함수의 결과값을 돌려주는 명령어이다. 먼저 다음과 같이 add함수를 만들자. def add(a, b): return a+b # 이제 직접 add 함수를 사용해 보자. a = 3 b = 4 c = add(a,b) print(c) # 변수 a에 3, b에 4를 대입한 다음 앞에서 만든 add 함수에 a와 b를 입력값으로 넣어 준다. 그리고 변수 c에 add 함수의 결과값을 대입하면 print(c)로 c의 값을 확인 할 수 있다. # 매개변수와 인수 # 매개변수(parameter)와 인수(arguments)는 혼용해서 사용되는 헷갈리는 용어이므로 잘 기억해 두자. # 매개변수는 함수에 입력으로 전달된 값을 받는 변수를 의미하고 인수는 함수를 호출할 때 전달하는 입력값을 의미한다. def add(a, b): #a, b는 매개변수 return a + b print(add(3, 4)) # 3, 4는 인수 # [같은 의미를 가진 여러가지 용어들에 주의하자] # 프로그래밍을 공부할 때 어려운 부분 중 하나가 용어의 혼용이라고 할 수 있다. # 우리는 공부하면서 원서를 보기도 하고 누군가의 번역본을 보기도 하면서 의미는 같지만 표현이 다른 용어를 자주 만나게 된다. # 한 예로 입력값을 다른 말로 함수의 인수, 매개변수 등으로 말하기도 하고 결과값을 출력값, 반환 값, 돌려주는 값 등으로 말하기도 한다. # 이렇듯 많은 용어가 여러 가지 다른 말로 표현되지만 의미는 동일한 경우가 많다. # 입력값과 결과값에 따른 함수의 형태 # 함수는 들어온 입력값을 받아 어떤 처리를 하여 적절한 결과값을 돌려준다. # 입력값 ---> 함수 ---> 결과값 # 함수의 형태는 입력값과 결과값의 존재 유무에 따라 4가지 유형으로 나뉜다. 자세히 알아보자. # 일반적인 함수 # 입력값이 있고 결과값이 있는 함수가 일반적인 함수이다. # 앞으로 여러분이 프로그래밍을 할 때 만들 함수는 대부분 다음과 비슷한 형태일 것이다. # def 함수이름(매개변수): # <수행할 문장> # ... # return 결과값 # 다음은 일반 함수의 전형적인 예이다. def add(a, b): result = a + b return result # add 함수는 2개의 입력값을 받아서 서로 더한 결과값을 돌려준다. # 이 함수를 사용하는 방법은 다음과 같다. 입력값으로 3과 4를 주고 결과값을 돌려받아 보자. a = add(3, 4) print(a) # 이처럼 입력값과 결과값이 있는 함수의 사용법을 정리하면 다음과 같다. # 결과값을 받을 변수 = 함수이름(입력인수1, 입력인수2) # 입력값이 없는 함수 # 입력값이 없는 함수가 존재할까? 당연히 존재한다. 다음을 보자. def say(): return 'hi' # say라는 이름의 함수를 만들었다. 그런데 매개변수 부분을 나타내는 함수 이름 뒤의 괄호 안이 비어 있다. 이함수는 어떻게 사용하는 걸까? # 다음을 직접 입력해보자. a = say() print(a) # 위 함수를 쓰기 위해서는 say()처럼 괄호 안에 아무 값도 넣지 않아야 한다. # 이 함수는 입력값은 없지만 결과값으로 Hi라는 문자열을 돌려준다. a = say()처럼 작성하면 a에 Hi 문자열이 대입되는 것이다. # 이처럼 입력값이 없고 결과값만 있는 함수는 다음과 같이 사용된다. # 결과값을 받을 변수 = 함수이름() # 결과값이 없는 함수 # 결과값이 없는 함수 역시 존재한다. 다음 예를 보자. def add(a, b): print("%d, %d의 합은 %d입니다." %(a, b, a + b)) # 결과값이 없는 함수는 호출해도 돌려주는 값이 없기 때문에 다음과 같이 사용한다. add(3, 4) # 즉 결과값이 없는 함수는 다음과 같이 사용한다. # 함수이름(입력인수1, 입력인수2) # 결과값이 진짜 없는지 확인하기 위해 다음 예를 직접 입력해 보자. a = add(3, 4) # 아마도 여러분은 '3, 4의 합은 7입니다.'라는 문장을 출력해 주었는데 왜 결과값이 없다는 것인지 의아하게 생각할 것이다. # 이 부분이 초보자들이 혼란스러워 하는 부분이기도 한데, print문은 함수의 구성 요소 중 하나인 <수행할 문장>에 해당하는 부분일 뿐이다. # 결과값은 당연히 없다. 결과값은 오직 return명령어로만 돌려받을 수 있다. a = add(3, 4) print(a) # a값은 None이다. None이란 거짓을 나타내는 자료형이라고 언급한 적이 있다. # add 함수처럼 결과값이 없을 때 a = add(3, 4)처럼 쓰면 함수는 add 반환 값으로 a변수에 None을 돌려준다. 이것을 가지고 결과값이 있다고 생각하면 곤란하다. # 입력값도 결과값도 없는 ㅎ마수 # 입력값도 결과값도 없는 함수 역시 존재한다. 다음 예를 보자. def say(): print('Hi') # 입력 인수를 받는 매개변수도 없고 return문도 없으니 입력값도 결과값도 없는 함수이다. # 이 함수를 사용하는 방법은 단 한 가지이다. say() # 즉 입력값도 결과값도 없는 함수는 다음과 같이 사용한다. # 함수이름() # 매개변수 지정하여 호출하기 # 함수를 호출할 때 매개변수를 지정할 수도 있다. 다음 예를 보자. def add(a, b): return a + b # 앞에서 알아본 add 함수이다. 이 함수를 다음과 같이 매개변수를 지정하여 사용할 수 있다. result = add(a = 3, b = 7) print(result) # 매개변수를 지정하면 다음과 같이 순서에 상관없이 사용할 수 있다는 장점이 있다. result = add(b = 5, a = 3) # a에 3, b에 7을 전달 print(result) # 입력값이 몇 개가 될ㅈ지 모를 때는 어떻게 해야 할까? # 입력값이 여러 개일 때 그 입력값을 모두 더해 주는 함수를 생각해 보자. # 하지만 몇 개가 입력될지 모를 떄는 어떻게 해야 할까? # 아마도 난감할 것이다. 파이썬은 이런 문제를 해결하기 위해 다음과 같은 방법을 제공한다. # def 함수이름(*매개변수): # <수행할 문장> # ... # 일반적으로 볼 수 있는 함수 형태ㅐ에서 괄호 안의 매개변수 부분이 *매개변수로 바뀌었다. # 여러 개의 입력값을 받는 함수 만들기 # 다음 예를 통해 여러 개의 입력값을 모두 더하는 함수를 직접 만들어 보자 # 예를 들어 add_many(1, 2)이면 3을, add_many(1, 2, 3)이면 6을, add_many(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)이면 55를 돌려주는 함수를 만들어 보자. def add_many(*args): result = 0 for i in args: result = result + i return result # 위에서 만든 add_many 함수는 입력값이 몇 개이든 상관이 없다. *args처럼 매개 변수 이름 앞에 *을 붙이면 입력값을 전부 모아서 튜플로 만들어 주기 때문이다. # 만약 add_many(1, 2, 3)처럼 이 함수를 쓰면 args는 (1, 2, 3)이 되고, add_many(1, 2, 3, 4, 5, 6, 7, 8, 9,10)처럼 쓰면 args는 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)이 된다. 여기에서 *args는 임의로 정한 변수 이름이다. # 여기에서 *args는 임의로 정한 변수 이름이다. # *pey, *python처럼 아무 이름이나 써도 된다. # 실제로 이 함수를 직접 실행해 보자. result = add_many(1, 2, 3) print(result) result = add_many(1, 2, 3, 4, 5, 6 ,7, 8, 9, 10) print(result) # add_many(1, 2, 3)으로 함수를 호출하면 6을 돌려주고, add_many(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)을 대입하면 55를 돌려준다. # 여러 개의 입력을 처리할 때 def add_many(*args)처럼 함수의 매개변수로 *args만 사용할 수 있는 것은 아니다. # 다음 예를 보자. def add_mul(choice, *args): if choice == "add": result = 0 for i in args: result = result + i elif choice == "mul": result = 1 for i in args: result = result * i return result # add_mul 함수는 여러 개의 입력값을 의미하는 *args 매개변수 앞에 choice 매개변수가 추가되어 있다. # 이 함수는 다음과 같이 사용할 수 있다. result = add_mul('add', 1, 2, 3, 4, 5) print(result) result = add_mul('mul', 1, 2, 3, 4, 5) print(result) # 매개변수 choice에 'add'가 입력된 경우 *args에 입력되는 모든 값을 더해서 15를 돌려주고, 'mul'이 입력된 경우 *ags에 입력되는 모든 값을 곱해서 120을 돌려준다. # 키워드 파라미터 kwargs # 이번에는 키워드 파라미터에 대해 알아보자. 키워드 파라미터를 사용할 때는 매개변수 앞에 별 두개(**)를 붙인다. 역시 이것도 예제로 알아보자. 먼저 다음과 같은 함수를 작성한다. def print_kwargs(**kwargs): print(kwargs) # print_kwargs 함수는 매개변수는 kwargs를 출력하는 함수이다. 이제 이 함수를 다음과 같이 사용해 보자. print_kwargs(a = 1) print_kwargs(name = 'foo', age = 3) # 입력값 a = 1또는 name = 'foo', age = 3이 모두 딕셔너리로 만들어져서 출력된다는 것을 확인할 수 잇다. # 즉 **kwargs 처럼 매개변수 이름 앞에 **을 분이면 매개변수 kwargs는 딕셔너리가 되고 모든 key=value 형태의 결과값이 그 딕셔너리에 저장된다. # ※ 여기에서 kwargs는 keyword arguments의 약자이며 args와 마찬가지로 관례적으로 사용한다. # 함수의 결과값은 언제나 하나이다. # 먼저 다음 함수를 만들어 보자. def add_and_mul(a, b): return a + b, a * b # ※ add_and_mul 함수는 2개의 입력 인수를 받아 더한 값과 곱한 값을 돌려주는 함수이다. # 이 함수를 다음과 같이 호출하면 어떻게 될까? result = add_and_mul(3, 4) # 결과값은 a + b와 a * b 2개인데 결과값을 받아들이는 변수는 result 하나만 쓰였으니 오류가 발생하지 않을까? 당연한 의문이다. 하지만 오류는 발생하지 않는다. # 그 이유는 함수의 결과값은 2개가 아니ㅏㄹ 언제나 1개라는 데 있다. # add_and_mul 함수의 결과값 a + b와 a * b는 튜플값 하나인 (a + b, a * b)로 돌려준다. # 따라서 result변수는 다음과 같은 값을 항상 같게된다. print(result) # 즉 결과값으로 (7, 12)라는 튜플 값을 갖게 되는 것이다. # 만약 이 하나의 튜플 값을 2개의 결과값처럼 받고 싶다면 다음과 같이 함수를 호출하면 된다. result1, result2 = add_and_mul(3,4) print(result1) print(result2) # 이렇게 호출하면 result1, result2 = (7, 12)가 되어 result1으 7이 되고 result2는 12가 된다. # 또 다음과 같은 의문이 생길 수도 있다. def add_and_mul(a, b): return a + b return a * b # 위와 같이 return문을 2번 사용하면 2개의 결과값을 돌려주지 않을까? 하지만 파이썬에서 위와 같은 함수는 참 어리석은 함수다. # 그 이유는 add_and_mul 함수를 호출해 보면 알 수 있다. result = add_and_mul(2, 3) print(result) # ※add_and_mul(2, 3)의 결과값을 5 하나뿐이다. 두 번째 return문인 return a * b 는 실행되지 않았다는 뜻이다. # 이 예에서 볼 수 있듯이 두번쨰 return문인 return a * b는 실행되지 않았다. 따라서 이 함수는 다음과 와전히 동일하다. def add_and_mul(a, b): return a + b # w즉 함수는 return문을 만나는 순간 결과값을 돌려준 다음 함수를 빠져나가게 된다. # [return의 또 다른 쓰임새] # 특별한 상황일 때 함수르 ㄹ빠져나가고 싶다면 return을 단독으로 써서 함수를 즉시 빠져나갈 수 있다. 다음 예를 보자. def say_nick(nick): if nick == "바보": return print(("나의 별명은 %s 입니다") % nick) # 위 함수는 '별명'을 입력으로 전달받아 출력하는 함수이다. # 이 함수 역시 반환 값(결과값)은 없다. (문자열을 출력한다는 것과 반환 값이 있다는 것은 전혀 다른 말이다. 혼동하지 말자. 함수의 반환 값은 오로지 return문에 의해서만 생성된다.) # 만약에 입력값으로 '바보'라는 값이 들어오면 문자열을 출력하지 않고 함수를 즉시 빠져나간다. say_nick('야호') say_nick('바보') # 이처럼 return으로 함수를 빠져나가는 방법은 실제 프로그래밍에서 자주 사용한다. # 매개변수에 초깃값 미리 설정하기 # 이번에는 조금 다른 형태로 함수의 인수를 전달하는 방법에 대해서 알아보자. # 매개변수에 초깃값을 미리 설정해 주는 경우이다. def say_myself(name, old, man = True): print("나의 이름 %s 입니다." % name) print("나이는 %d살입니다." % old) if man : print("남자입니다.") else: print("여자입니다.") # ※ say_myself 함수는 3개의 매개변수를 받아서 마지막 인수인 man이 True이면 "남자입니다.", False이면 "여자입니다."를 출력한다. # 위 함수를 보면 매개변수가 name, old, man = True 이렇게 3개다. 그런데 낯선 것이 나왔다. man = True처럼 매개변수에 미리 값을 넣어 준 것이다. # 이것이 바로 함수의 매개변수 초깃값을 설정하는 방법이다. 함수의 매개변수에 들어갈 값이 항상 변하는 경우가 아닐 경우에는 이렇게 함수의 초깃값을 미리 설정해 두면 유용하다. # say_meyself함수는 다음처럼 사용할 수 있다. say_myself("박응용", 65) say_myself("박응용", 65, True) # 입력값으로 "박응용",27처럼 2개를 주면 name에는 "박응용" old에는 27이 대입된다. 그리고 man이라는 변수에 입력값을 주지 않았지만 초깃값 True를 갖게된다. # 따라서 위 예에서 함수를 사용한 2가지 방법은 모두 동일한 결과를 출력한다. # 이제 초깃값이 설정된 부분을 False로 바꿔보자. # man 변수에 False값이 대입되어 다음과 같은 결과가 출력된다. say_myself("박응선", 27, False) # 함수의 매개변수에 초깃값을 설정할 때 주의할 것이 하나 있다. 만약 위에서 본 say_myself 함수를 다음과 같이 만들면 어떻게 될까? # def say_myself(name, man = True, old): # print("나의 이름은 %s 입니다." %name) # print("나이는 %d살입니다." % old) # if man: # print("남자입니다.") # else: # print("여자입니다.") # 이전 함수와 바뀐 부분은 초깃값을 설정한 매개변수의 위치이다. 결론을 미리 말하면, 이것을 함수를 실행할 때 오류가 발생한다. # 얼핏 생각하기에 위 함수를 호출하려면 다음과 같이 하면 될 것 같다. # say_myself("박응용", 27) # 위 문장과 같이 함수를 호출한다면 name 변수에는 "박응용"이 들어갈 것이다. 하지만 파이썬 인터프리터는 27을 man 변수와 old 변수 중 어느 곳에 대입해야 할지 알 수 없게 된다. # 오류 메시지를 보면 다음과 같다. # SyntaxError: non-default argument follows default argument # 위 오류 메시지는 초깃값을 설정해 놓은 매개변수 뒤에 초깃값을 설정해 놓지 않은 매개변수는 사용할 수 없다는 뜻이다. # 즉 매개변수로 (name, old, man = True)는 되지만 (name, man = True, old)는 안된다는 것이다. # 초기화시키고 싶은 매개변수를 항사아 뒤쪽에 놓는 것을 잊지 말자. # 암수 안에서 선언한 변수의 효력 범위 # 함수 안에서 사용할 변수의 이름을 함수 밖에서도 동일하게 사용한다면 어떻게 될까? # 다음 예를 보자. a = 1 def vartest(a): a = a + 1 vartest(a) print(a) # 먼저 a 라는 변수를 생성하고 1을 대입한다. 다음 입력으로 들어온 값에 1을 더해 주고 결과값은 돌려주지 않는 vartest 함수를 선언한다. # 그리고 vartest 함수에 입력값으로 a를 주었다. 마지막으로 a의 값을 출력하는 print(a)를 입력한다. 과연 결과값은 뭐가 나올까? # 당연히 vartest함수에서 매개변수 a의 값에 1을 더했으니까 2가 출력될 것 같지만 프로그램 소스를 작성해서 실행해 보면 결과값은 1이 나온다. # 그 이유는 함수 안에서 새로 만든 매개변수는 함수 안에서만 사용하는 "함수만의 변수"이기 때문이다. # 즉 def vartest(a)에서 입력값을 전달받는 매개변수 a는 함수 안에서만 사용하는 변수이지 함수 밖의 변수 a가 아니라는 뜻이다. # 따라서 vartest함수는 다음처럼 변수이름을 hello로 한 vartest함수와 완전히 동일하다 def vartest(hello): hello = hello + 1 # 즉 함수 안에서 사용하는 매개변수는 함수 밖의 변수 이름과는 전혀 상관이 없다는 뜻이다. # 다음 예를 보면 더욱 분명하게 이해할 수 있을 것이다. def vartest(a): a = a + 1 vartest(3) print(a) # 위 프로그램 소스를 에디터로 작성해서 실행하면 어떻게 될까? # 오류가 발생할 것이라고 생각한 사람이라면, 모든 것을 이해한 사람 일 것이다. # vartest함수 안에서 a는 4가 되지만 함수를 호출하고 난 뒤에 pritn(a)문장은 오류가 발생하게 된다. # 그 이유는 print(a)에서 입력받아야 하는 a변수를 어디에서도 찾을 수가 없기 때문이다. # 다시 말하지만 함수 안에서 선언한 매개변수는 함수 안에서만 사용될 뿐 함수 밖에서는 사용되지 않는다. # 이것을 이해하는 것은 매우 중요하다. # 함수 안에서 함수 밖의 변수를 변경하는 방법 # 그렇다면 vartest라는 함수를 사용해서 함수 밖의 변수 a를 1만큼 증가시킬 수 있는 방법은 없을까? # 이 질문에는 2가지 해결 방법이 있다. # 1. return 사용하기 a = 1 def vartest(a): a = a + 1 return a a = vartest(a) print(a) # 첫 번쨰 방법은 return을 사용하는 방법이다. vartest 함수는 입력으로 들어온 값에 1을 더한값을 돌려준다. # 따라서 a = vartest(a)라고 대입하면 a가 vartest함수의 결과값으로 바뀐다. # 여기에서도 물론 vartest함수 안의 a 매개변수는 함수 밖의 a와는 다른 것이다. # 2. global 명령어 사용하기 a = 1 def vartest(): global a a = a + 1 vartest() print(a) # 두 번재 방법은 global명령어를 사용하는 방법이다. # 위 예에서 볼 수 있듯이 vartest함수 안의 global a 문장은 함수 안에서 함수 밖의 a 변수를 직접 사용하겠다는 뜻이다. # 하지만 프로그래밍을 할 때 global명령어는 사용하지 않는 것이 좋다. # 왜냐하면 함수는 독립적으로 존재하는 것이 좋기 때문이다. # 외부 변수에 종속적인 함수는 그다지 좋은 함수가 아니다. # 그러므로 가급적 global명령어를 사용하는 이 방법은 피하고 첫 번째 방법을 사용하기를 권한다. # lambda # lambda는 함수를 생성할 때 사용하는 에약어로 def와 동일한 역할을 한다. # 보통 함수를 한줄로 간결하게 만들 때 사용한다. # 우리말로는 "람다"라고 읽고 def를 사용해야 할 정도로 복잡하지 않거나 def를 사용할 수 없는 곳에 주로 쓰인다. # 사용법은 다음과 같다. # lambda 매개변수1, 매개변수2, ...:매개변수를 이용한 표현식 # 한번 직접 만들어보자. add = lambda a, b: a + b result = add(3, 4) print(result) # add는 두 개의 인수를 받아 서로 더한 값을 돌려주는 lambda함수이다. # 위 예제는 def를 사용한 다음 함수와 하는 일이 완전히 동일하다. def add(a, b): return a + b result = add(3, 4) print(result) # ※ lambda 예약어로 만든 함수는 retrun 명령어가 없어도 결과값을 돌려준다. # Review complete

함수 리뷰의 핵심
- 함수란 무엇인가?
- 함수를 사용하는 이유
- 파이썬 함수의 구조
- 매개변수와 인수
- 일반적인 함수
- 입력값이 없는 함수
- 결과값이 없는 함수
- 입력값도 결과값도 없는 함수
- 매개변수 지정하여 호출하기
- 입력값이 몇 개가 될지 모를 때
- 함수의 결과값은 언제나 하나
- 매개변수에 초깃값 미리 설정하기
- 함수 안에서 선언한 변수의 효력 범위
- 함수 안에서 함수 밖의 변수를 변경하는 방법
- lamda
오늘은 파이썬의 함수에 대해서 리뷰했다. 함수는 정말 중요하니 자주보고 눈에 익히도록 하자.
정리한 코드를 공유한다!
https://github.com/mgkim-developer/Python-Basic-Grammar/blob/main/(4-1)Function.py
GitHub - mgkim-developer/Python-Basic-Grammar: Python Basic Grammar Study
Python Basic Grammar Study. Contribute to mgkim-developer/Python-Basic-Grammar development by creating an account on GitHub.
github.com
반응형
'Python' 카테고리의 다른 글
파이썬 읽고 쓰기 (0) | 2021.08.08 |
---|---|
파이썬 사용자 입력과 출력 (0) | 2021.08.07 |
파이썬 for문에 대해 알아보자! (0) | 2021.08.04 |
파이썬 while문이 뭐야? (feat.반복문) (0) | 2021.08.03 |
파이썬 if문에 대해 알아보기!(feat.조건문) (0) | 2021.08.03 |
댓글
이 글 공유하기
다른 글
-
파이썬 읽고 쓰기
파이썬 읽고 쓰기
2021.08.08 -
파이썬 사용자 입력과 출력
파이썬 사용자 입력과 출력
2021.08.07 -
파이썬 for문에 대해 알아보자!
파이썬 for문에 대해 알아보자!
2021.08.04 -
파이썬 while문이 뭐야? (feat.반복문)
파이썬 while문이 뭐야? (feat.반복문)
2021.08.03
댓글을 사용할 수 없습니다.