def hello():
- 함수를 작성할 때
def
를 먼저 작성해준다. def
는 define의 줄임말으로 함수를 정의 한다는 의미를 가지고 있다.
def
다음에 함수이름을 적어주고 ()
와 :
을 작성해준다.
그러면 def hello():
가 코드 첫줄에 완성되는 데, 이를 함수의 헤더라고 한다.
def hello():
print("Hello!")
print("Welcome to Home!")
hello()
- 함수를 사용하기 위해 내용을 작성해야한다.
- 함수 내용은 헤더 아랫줄에 들여쓰기를 하고 작성해준다.
- 함수를 호출하기 위해 함수를 불러와야한다.
함수를 불러올때는 들여쓰기를 하지않고 함수이름
을 작성하고 ()
를 작성해준다.
파라미터
def hello():
print("Hello!")
print("Welcome to Home!")
hello()
hello()
hello()
def hello(name):
print("Hello!")
print(name)
print("Welcome to Home!")
hello("Chris")
- 함수헤더
()
안에 name을 넣어준다. 여기서 name을 파라미터라고 부른다.
- 함수내용에는
print(name)
을 넣어준다.
- 호출할 함수
hello("Chris")
를 작성한다. hello함수 안에 Chris는 print(name)
에 name으로 들어가게 되고 함수를 출력하면 아래와 같은 값이 나온다.
Hello!
Chris
Welcome to Home!
여러개의 파라미터
- 여러개의 파라미터를 사용할 때는
,
를 사용하면 된다.
def print_sum(a,b):
print(a+b)
print_sum(1,2)
=> 3
- 3개의 파라미터를 사용할 때도 (a,b,c) 이런식으로 작성하면 된다.
옵셔널 파라미터
- 옵셔널 파라미터란 파라미터에 기본값을 설정해 두는 것을 말한다. 기본값을 설정해두면 함수를 호출할 때 꼭 파라미터를 넘져주지 않아도 된다.
def myself(name, age, nationality="한국"):
print("내 이름은 {}".format(name))
print("나이는 {}살".format(age))
print("국적은 {}".format(nationality))
myself("Tom", 1, "미국")
print()
myself("Tom", 1)
- 옵셔널 파라미터의 주의점으로는 꼭 마지막 파라미터에 적용해야한다.
def myself(name, nationality="한국", age):
이런 식으로 중간에 옵셔널 파라미터가 들어가면 오류가 뜨게 된다.
함수의 실행순서
1. def hello():
2. print("Hello!")
3. print("Welcome to Home!")
4.
5. print("함수 호출 전")
6. hello()
7. print("함수 호출 후")
=>
함수 호출 전
Hello!
Welcome to Home!
함수 호출 후
- 1~3번까지는 함수를 정의 했기 때문에 어떤 일이 일어나지 않는다
- 5번부터 함수가 호출이 된다.
- 5번이 호출되고 6번이 호출될 차례가 되면 1번으로 돌아가 hello라는 함수의 이름을 찾고 그 내용을 실행하게 된다.
- 6번 호출이 끝나면 7번으로 넘어가고 7번이 끝나면 호출이 끝나게 된다.
return
def square(X):
return X * X
print(square(3))
=> 9
- square함수를 호출하면서 파라미터로 3을 넘겨주었다.
- square함수에서는 3 * 3을 해서 9를 리턴해준다.
- 그러면 함수가 9를 돌려줘서 함수 호출 부분을 9로 대체하는 것이다.
- 함수를 종료시키는 역할을 하는 경우
def square(X):
print("함수 시작")
return X * X
print("함수 종료")
print(square(3))
print("Hello")
=>
함수 시작
9
Hello
- square()를 호출하고 파라미터로 3을 넘겨주었다.
- square()에서 "함수 시작"을 출력하고 return에 의해서 함수호출 부분이 9로 대체된다.
- 그런데 return문은 함수를 종료시키는 역할을 하기 때문에 square()는 종료되고 Hello가 출력된다.