함수를 정의하고, 호출하기
입력
def hello(): # Hello 함수를 정의한다
print("Hello Python!")
hello()
hello()
hello()
출력
Hello Python!
Hello Python!
Hello Python!
def (define) 명령어는 hello라는 함수를 '정의' 함.
def 함수이름(인자): # '인자'는 생략 가능
함수 내용
return 함수의 결괏값 # 없을 때에는 생략 가능
hell0() 라는 함수 사용 시, Hello Python!이 출력하도록 출력하도록 호출한다.
만약 상황에 맞게 여러가지 역할을 하도록 함수를 정의한다면?
**
입력**
def hello2(name):
print("Hello", name) # name 인자 + Hello 출력
hello2("강아") # 인자값으로 강아를 넣음
hello2("고냥")
**
출력**
Hello 강아
Hello 고냥
인자는 함수를 호출할 시 함수에게 알려주는 일종의 정보. hello2 함수는 name이라는 인자를 하나 사용하는 함수임.
**
결괏값이 있는 함수**
입력
def square(a): # a의 square값 (a^2) 구하는 함수
c = a * a
return c
def triangle(a, h): #밑변이 a이고, 높이가 h인 삼각형의 넒이를 구하는 함수
c = a * h / 2
return c
s1 = 4
s2 = square(s1) #s1(4)의 제곱을 구하는 함수를 호출하여, 그 결과를 s2에 저장
print(s1, s2)
print(triangle(3, 4))
출력
4 16
6.0
s1이 4라고 주어졌을 때, s2에서는 s1의 제곱을 계산한 값이 나왔으며,
print(s1, s2)에서 각각 4와 16으로 출력됨
print(triangle(3, 4))에서는 밑변이 3, 높이가 4인 삼각형의 넒이인 3 * 4 / 2 = 6
※ 인자에는 두 가지 종류가 있다
def square(n):
return n*n
print(square(3))
이 함수에서는 에서는 어떤 수를 변수(인자) n으로 지정하여 n의 제곱값으로 돌려주는 함수이며, 또한 square함수를 사용할 때의 3 또한 '인자' 이다.
n과 같이 함수에서 사용되는 값을 정의하는 인자를 '형식 인자' 또는 '매개변수' 라고 하며, 3과 같이 함수를 호출할 때에 실제로 사용되는 값을 '실 인자' 또는 '인자/인수' 라고 부른다.
함수는 '인자'를 사용해서 처리할 정보를 넘겨받을 수 있으며, 계산된 결과를 결괏값 (반환값) 으로 사용해서 다시 함수를 호출한 곳에 돌려줄 수도 있다.
==============================================================================
Day 12. 함수 응용하기
**
1부터 n까지의 합을 구하는 함수**
입력
def sum_func(n):
s = 0
for x in range(1, n+1): # 1, 2, 3... n까지 반복
s = s + x # 계산된 값에 x를 더해서 다시 s에 저장
return s # 결괏값 s
print(sum_func(10))
print(sum_func(100))
*출력
*
55
5050
def sum_func(n): sum_func 함수를 정의하고, 그 인자로 n을 지정
변수 s는 처음에 0으로 설정되었으며, 여기에 x 값을 더한 것을 다시 s에 저장함으로써 1씩 증가하였음. 10까지 증가.
**
1부터 n까지 곱을 구하는 함수**
**
입력**
def factorial(n): # 팩토리얼 함수 정의
fact = 1 # fact 시작값 1
for x in range(1, n+1): # 1부터 n까지 반복
fact = fact * x
return fact
print(factorial(5))
print(factorial(10))
출력
120
3628800
factorial 함수는 한 개의 인자 n을 지정하고, 1부터 n까지의 곱을 계산 후 다시 반환하는 함수.
**
다각형을 그리는 함수**
입력
import turtle as t
def polygon(n):
for x in range(n): # n번 반복
t.forward(50) # 거북이를 50 만큼 앞으로 이동
t.left(360/n) # 거북이를 360/n만큼 왼쪽으로 회전
polygon(3)
출력
import turtle as t
def polygon(n):
for x in range(n): # n번 반복
t.forward(50) # 거북이를 50 만큼 앞으로 이동
t.left(360/n) # 거북이를 360/n만큼 왼쪽으로 회전
polygon(3)
polygon(5)
def polygon2(n, a):
for x in range(n):
t.forward(a) # 거북이를 a만큼 앞으로 이동)
t.left(360/n)
t.up()
t.forward(100)
t.down()
polygon2(3, 75) # 한 변이 75인 삼각형을 그린다
polygon2(5, 100) # 한 변이 100인 5각형을 그린다
t.up()
t.forward(100)
t.down()
함수는거북이가 그림을 그리지 않고 움직이도록 펜을 종이에서 들고
100 만큼 이동한 후
다시 그림을 그리도록 펜을 종이에 내려놓는다
이 명령어로 인해 처음에 그린 정삼각형, 정오각형에서 100 픽셀만큼 떨어진 곳에서 다시 그림을 그리게 되었다.
def polygon2(n, a): 에서 첫 번째 인자 n은 도형의 각을 정하며, 두 번째 인자 a는 거북이의 이동거리, 즉 다각형 한 변의 길이를 의미한다.
'코딩 - 주피터 노트북 (파이썬)' 카테고리의 다른 글
[파이썬코딩] 손에 잡히는 파이썬 (0) | 2019.04.08 |
---|---|
[모두의 파이썬] Day 13, 14 거북이 그래픽 응용 / 계산 맞히기 게임 (0) | 2019.02.27 |
[모두의 파이썬] Day 9, 10 Random 모듈로 임의의 수 뽑기 / while 명령으로 반복하기 (0) | 2019.02.26 |
[모두의 파이썬] Day 7, 8 입력/출력, True/False 판단 (0) | 2019.02.15 |
[모두의 파이썬] Day 05, Day 06 'Range 명령어, 거북이 그래픽' (0) | 2019.02.13 |