함수란?
특정한 용도의 코드를 한 곳에 모아둔 곳
입력에 대한 작업의 결과를 출력해주는 기능의 모음
함수의 사용목적
반복적인 코드의 사용을 최소화하여 필요시 사용하기 위함
함수 사용의 장점
인수와 매개변수
인수(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()