[python] 함수

Cjw.dev·2023년 3월 14일

Python

목록 보기
4/7

함수란?

특정한 용도의 코드를 한 곳에 모아둔 곳
입력에 대한 작업의 결과를 출력해주는 기능의 모음


함수의 사용목적

반복적인 코드의 사용을 최소화하여 필요시 사용하기 위함


함수 사용의 장점

  1. 코드 재사용성의 향상 / 같은 기능을 반복해서 구현하지 않아도 됨.
  2. 유지보수가 쉬워진다
  3. 코드 가독성이 높아진다
  4. 용도 구분이 쉬워진다 (조건 : 네이밍을 잘해야한다)
  5. 테스트와 디버깅이 쉬워진다. 해당 함수만 테스트하고 디버깅이 가능하기 때문. 테스트를 통해 기능검증
  6. 모듈화가 가능해진다. 함수를 정의하면 다른 함수(모듈)에서도 사용 가능. 모듈화 : 코드재사용성, 가독성, 유지보수성 증가

인수와 매개변수

인수(argument) : 함수를 호출할 때 전달하는 입력값
매개변수(parameter) : 함수에 입력으로 전달된 값을 받아주는 변수


함수 만들어보기

def solusion():
    # print("함수 실행")
    return 100 # 리턴이 없으면 결과값이 없는 함수
print(solusion())   

함수와 메서드

공통 : 코드의 재사용성을 위해 만들어진 코드 블록

메서드는 객체에 속한 함수이지만, 함수는 객체에 속하지 않는다.

메서드는 클래스 내에서 정의되고 해당 클래스의 객체에서 호출됩니다.
함수는 독립적으로 정의되고 호출됩니다.
메서드는 클래스의 상태(인스턴스 변수)를 수정할 수 있지만, 함수는 그렇지 않습니다.

메서드는 클래스와 해당 클래스의 객체의 상태를 변경할 수 있습니다.
함수는 함수 내부에서 정의된 변수 외에는 외부 상태를 변경할 수 없습니다.
메서드는 첫 번째 매개변수로 self를 갖는 반면, 함수는 그렇지 않습니다.

메서드의 첫 번째 매개변수는 해당 클래스의 객체를 나타내는 self입니다.
함수는 일반적으로 매개변수를 필요로 하지만, 특정한 경우에는 필요하지 않을 수도 있습니다.


함수 만들어보기 예제문제

문제1
리스트가 다음과 같이 주어졌을때 다음과 같은 출력결과가 나올수 있도록 코드를 작성하세요
문제의 리스트
조건 : for문 이용. 힌트 : 규칙이 있음.
quiz1 = ["a", "b", "c", "d", "e"]
a b c
b c d
c d e

for test in range(len(quiz1)-2): # 0, 1, 2
    print(quiz1[test], quiz1[test+1], quiz1[test+2])

문제2번
다음과 같은 리스트가 주어졌을때
quiz3 = [ [1001, 1002], [2001, 2002], [3001, 3002] ]
하단의 내용과 같은 결과를 출력해보세요
조건 : for문 사용.

결과 
1001 번
=====
1002 번
======
2001 번
=======
2002 번
========
3001 번
=========
3002 번
==========

def sol2():
  q = "===="
  for i in quiz3:
      for j in i:
          q += "="
          print(j,"번")
          print(q)
        
        

이중함수 : 함수안의 함수

이중함수 예제

def print_hi():
    hi = "hello world"
    def print_message():
        bye = "bye world"
        print(hi)
    print_message()
    print(bye)
print_hi()
profile
백엔드 개발 공부 기록 22.11.07 ~ ing

0개의 댓글