함수

shin·2022년 6월 14일
0

Python

목록 보기
3/5
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

  • return은 2가지 역할을 한다.
    • 값 돌려주기
    • 함수 종료시키기
  • 값 돌려주기 예시이다
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가 출력된다.

0개의 댓글