1. 배운 내용
2. 작성한 코드
3. 숙제
배운 내용
함수 정의
그동안 수업에선 함수를 어떠한 기능을 하는 코드의 묶음이라 설명해주었고, 오늘 보다 명확하게 그 내용에 대해 이야기 하였다.
코딩에서 함수란 수학에서의 함수와 비슷하다. 어떠한 입력(매개변수라 표현함)을 주어 함수를 호출하였을 때 입력값을 통해 특정한 동작을 수행하고 그 동작에 대응하는 결과를 출력을 돌려주는(반환한다고 표현함) 것이 함수이다.
아래는 함수를 정의하는 방법이다.
함수의 정의
# 함수의 정의
def 함수이름(매개변수1, 매개변수2):
수행할 코드1
수행할 코드2
수행할 코드3
return 반환할 값
def 키워드를 통해 함수를 정의할 수 있다. 또한 if, while 등과 같이 ‘:’ 이후 탭으로 해당 코드가 함수의 일부분임을 구분해주어야 한다.
함수 예제 정의 및 사용
#예시
def add(a, b):
print(a, "와", b, "를 더합니다.")
return a + b
k = add(2, 4)
print(k)
''' 출력 결과
2 와 4 를 더합니다.
6
'''
예시에서는 add라는 이름으로 함수를 정의하여 사용하였다. add라는 이름에 a와 b라는 입력을 받는 형태이다. 함수를 호출 할 때 이렇게 정해둔 입력 형식에 맞추어 함수를 호출하여야 한다.
함수를 정의한 이후 아래에서 함수를 호출하였다. 2와 4를 함수의 입력값으로 넣어주었는데 이러면 함수 내에서 a = 2, b = 4를 해준 것과 동일한 효과가 있다. 따라서 함수 내부에서 a, b를 사용하여 print() 함수를 호출해줬을 때 ‘2 와 4 를 더합니다’가 콘솔에 출력된 것이다. 위에서 이야기한 특정한 동작에 해당한다.
마지막으로 return은 함수를 종료함을 의미하며 종료함과 동시에 함수의 결과로 어떠한 값을 돌려줄지 정하는 부분이다. 코드에선 a + b를 돌려주도록 하였으니 2 + 4인 6을 반환한다. 그 결과 print(k)에선 6을 출력하게 된다.
작성한 코드
function.py
# 기본적인 형태의 함수
def add(a, b):
print(a, "와 ", b, "를 더합니다.")
return a + b
result = add(3, 4) + add(1, 2)
print(result)
print(add(1,-4))
# 입력을 받지 않는 형태의 함수
def square2():
return 2 * 2
print(square2())
# 입력은 받으나 별도의 출력이 없는 함수
# return이 없는 것에 주목
def sayHello(name):
print(name + ": hello~")
result = sayHello("siho")
print(result)
# 입력과 출력 전부 없는 함수. 오로지 내부 동작만이 있다.
def minsooSaidHello():
print("minsoo: hello~")
minsooSaidHello()
숙제
문제 1번
x를 입력 받고 x^2 + 3x - 5의 결과를 반환하는 함수를 작성하세요.
문제 2번
아래 반복되는 코드들을 함수로 만들고, 그 함수를 사용하도록 고치세요.
user1 = "중학생A"
user2 = "만리장성"
user3 = "세계최강탑솔러"
user4 = "메시"
print(user1, "님이 접속하셨습니다.")
print(user1, "님이 게임을 플레이 합니다.")
print(user1, "님이 퇴장하셨습니다.")
print(user2, "님이 접속하셨습니다.")
print(user2, "님이 게임을 플레이 합니다.")
print(user2, "님이 퇴장하셨습니다.")
print(user3, "님이 접속하셨습니다.")
print(user3, "님이 게임을 플레이 합니다.")
print(user3, "님이 퇴장하셨습니다.")
print(user4, "님이 접속하셨습니다.")
print(user4, "님이 게임을 플레이 합니다.")
print(user4, "님이 퇴장하셨습니다.")
문제 3번
정수 n을 입력으로 호출하였을 때 3의 n승을 반환하는 함수 power3를 작성하세요.
(3^0 = 1, 3^1 = 3, 3^2 = 9, 3^3 = 27…)
아래 코드는 함수 사용 예시이다.
#예시 코드
def power3(n):
# 이 공간에 코드를 작성할 것
pass # 함수 내부를 채웠으면 이 키워드는 지워도 무방
result = power3(2)
print(result) # 9
result = power3(3)
print(result) # 27
가능하면 숙제를 끝내고 미리 선생님께 검사 받기를 바래~