[python] 함수 기본

Soy·2023년 9월 12일
0

함수의 기본

  • def 함수 이름(): 문장
  • def 함수 이름(매개변수, 매개변수, ...): 문장
  • 매개변수를 지정한 개수보다 더 적게 넣거나, 더 많이 넣으면 TypeError가 발생한다.

매개변수

1. 가변 매개변수

  • def 함수이름(매개변수, 매개변수, ..., *가변 매개변수): 문장
  • 매개변수 개수가 변할 수 있는 경우를 말한다. 단, 가변 매개변수 뒤에는 일반 매개변수가 올 수 없으며, 가변 매개변수는 하나만 사용할 수 있다.

  • 예시

def print_n_times(n, *values):
	for i in range(n):
    	for value in values:
            print(value)
        print()
            
  print_n_times(3, "안녕하세요", "즐거운", "파이썬 프로그래밍")
- 실행 결과
안녕하세요 
즐거운
파이썬 프로그래밍

안녕하세요
즐거운
파이썬 프로그래밍

안녕하세요
즐거운
파이썬 프로그래밍

2. 기본 매개변수

  • print(value, ..., sep=' ', end='\n', file = sys.stdout, flush=False)
  • '매개변수=값' 형태로 되어 있는 것이 기본 매개변수이다. 기본 매개변수 뒤에는 일반 매개변수가 올 수 없다.

  • 예시

def print_n_times(value, n=2):
  for i in range(n):
    print(value)

print_n_times("안녕하세요")
# 아무것도 넣지 않을 경우 위에서 설정한대로 안녕하세요 가 2번 출력된다. 
# ("안녕하세요", 숫자) 이런 식으로 뒤에 다른 숫자를 넣으면 안녕하세요 가 숫자만큼 출력된다.
- 실행 결과
안녕하세요
안녕하세요

3. 키워드 매개변수

기본 매개변수가 가변 매개변수보다 앞에 올 때

  • 예시
    n에는 "안녕하세요", values에는 ["즐거운", "파이썬 프로그래밍"]이 들어가는데,
    range() 함수에는 숫자만 들어갈 수 있으므로 에러가 발생한다.
def print_n_times(n=2, *values):
  for i in range(n):
    for value in values:
      print(value)
    print()

print_n_times("안녕하세요", "즐거운", "파이썬 프로그래밍")
- 실행 결과
TypeError: 'str' object cannot be interpreted as an integer

가변 매개변수가 기본 매개변수보다 앞에 올 때

  • 예시
    가변 매개변수가 우선시되어 3도 출력이 된다.
def print_n_times(*values, n=2):
  for i in range(n):
    for value in values:
      print(value)
    print()

print_n_times("안녕하세요", "즐거운", "파이썬 프로그래밍", 3)
- 실행 결과
안녕하세요
즐거운
파이썬 프로그래밍
3

안녕하세요
즐거운
파이썬 프로그래밍
3

키워드 매개변수

def print_n_times(*values, n=2):
  for i in range(n):
    for value in values:
      print(value)
    print()

print_n_times("안녕하세요", "즐거운", "파이썬 프로그래밍", n=3)
- 실행 결과
안녕하세요
즐거운
파이썬 프로그래밍

안녕하세요
즐거운
파이썬 프로그래밍
  • 일반 매개변수는 해당 위치에 반드시 입력해야 한다.
    일반 매개변수지만 키워드 매개변수처럼 사용할 수도 있다.
    키워드 매개변수를 사용한다면 순서가 바뀌어도 괜찮다.
    기본 매개변수 중에서 필요한 값만 입력해도 된다.
	def test(a, b=10, c=100):
    	print(a + b+ c)

	test(10, 20, 30)
	test(a=10, b=100, c=200)
	test(c=10, a=100, b=200)
	test(10, c=200)
 	- 실행결과
 	60
	310
	310
	220

리턴

자료 없이 리턴하기

  • return 키워드 : 함수를 실행했던 위치로 돌아가라는 뜻. 함수가 끝나는 위치.

  • 예시

def return_test():
  print("A 위치입니다.")
  return
  print("B 위치입니다.")

return_test()
- 실행 결과
A 위치입니다.

자료와 함께 리턴하기

  • return 뒤에 자료를 입력하면 자료를 가지고 return한다.

  • 예시

def return_test():
  return 100

value = return_test()
print(value)
- 실행 결과
100

아무것도 리턴하지 않기

  • 예시
def return_test():
  return

value = return_test()
print(value)
- 실행 결과
None

함수 활용 예시

profile
Big dreamer

0개의 댓글