Function 1

jjiani·2021년 1월 31일
0

Python

목록 보기
6/6
post-thumbnail

외쳐! 할 수 있다!

함수란?

: 특정한 기능을 하는 코드의 묶음

  • 높은 가독성 = 짧아짐
  • 재사용성
  • 유지보수 : 코드의 기능별 분화

함수의 선언과 호출

  • 함수 선언은 def로 시작하여 :으로 끝나고, 다음은 tab(들여쓰기)로 코드 블록을 만든다.
  • 함수는 parameter(매개변수)를 넘겨줄 수도 있다.
  • 함수는 동작후에 return을 통해 결과값을 전달 할 수도 있다. (return 값이 없으면, None을 반환한다.)
  • 함수는 호출을 함수이름() / 함수이름(val1, val2)와 같이 한다.
def 함수이름(parameter1, parameter2) :
    코드블럭
    return value
def m_sum(a, b) :
    return a + b

number = m_sum(1,3)
print(number) #4

#cf
n_number = print(7+3)
print(n_number) #None -> print함수는 None을 반환!!
n_number변수에 None이 저장됨

#correct
n_number = 7 + 3
print(n_number) #10

함수의 Output

Return :

  • 함수는 반환되는 값이 있으며 어떠한 종류라도(str, int, list ...) 상관없다.
  • 그러나 오직 한 개의 객체만 반환된다 = 📢 여러개의 인자를 받고싶다면 다른 자료구조를 이용!
  • 함수가 return되거나 종료되면, 함수를 호출한 곳으로 돌아간다.
  • return은 함수안의 내용을 함수 밖으로 내보내기 위한 마침표 같은것! 규칙이다!
  • 따라서 함수에서 아무것도 return 하지 않으면 None이 반환된다.

함수의 Input

1. 매개변수(parameter)

def func(x):
      return x + 2
  • 여기서 x 는 매개변수(parameter)
    📢 즉, 입력을 받아 함수 내부에서 활용할 변수!

2. 전달인자(argument)

func(2)
  • 여기서 2 는 (전달)인자(argument)
    📢 즉, 전달되는 입력값이라고 생각하면 된다.

3. 기본 인자 값(Default)

: 함수가 호출될 때, 인자를 지정하지 않아도 출력 될 기본 값을 설정할 수 있다.
🚨주의) 기본 인자값을 가지는 인자 다음에 기본 값이 없는 인자를 사용할 수는 없습니다.

def greeting(name='익명', age):
    print(f'안녕? 난{name}, {age}살이야')
# # SyntaxError: non-default argument follows default argument

#correct
def greeting(age, name='익명'):
    print(f'안녕? 난{name}, {age}살이야')

4. 키워드 인자

: 키워드 인자는 직접 변수의 이름으로 특정 인자를 전달할 수 있다.

def greeting(age, name='익명'):
    print(f'안녕? 난 {name}, {age}살이야')
    
greeting(name='두준', age=30)
#'안녕? 난 두준, 30살이야"

🚨 주의) 키워드 인자를 활용한 다음에 위치 인자를 활용할 수는 없다!

greeting(age=30, '두준')
# SyntaxError: positional argument follows keyword argument

5. 가변인자 리스트

: 개수가 정해지지 않은 임의의 위치인자를 받기 위해서는 가변 인자 리스트(*args)를 활용.

  • 보통 가변 인자 리스트는 매개변수 목록의 마지막에 온다.
  • argstuple이다.
def func(a, b, *args):

6. 가변키워드 인자

: 정해지지 않은 키워드 인자들은 dict 형태로 처리가 되며, **로 표현한다. 보통 kwagrs라는 이름을 사용하며, **kwargs를 통해 인자를 받아 처리할 수 있다.

def func(**kwargs):
profile
¡Bienvenido a mi velog!🐣

0개의 댓글

관련 채용 정보