1

간단한 함수 정의 호출 연습

1
2
3
4
5
6
7
def f(n):
  if n == 0:
      return 1
  else:
      return n*f(n-1)

print(f(5))

120


2

유사해 보이는 함수 정의 차이점 분별

(a)

1
2
3
4
5
6
def f(n):
    if n==0:
          return 0
    else:
          return n*f(n-1)
print(f(5))

0


(b)

1
2
3
4
5
6
7
def f(n):
    if n==0:
        return 0
    else:
        return n+f(n-1)

print(f(5))

15


3

set builder

(a)

1
2
(a)
print([2*x + 1 for x in range(5)])

[1, 3, 5, 7, 9]


(b)

1
print([3*x + 1 for x in range(5)])

[1, 4, 7, 10, 13]


4

복잡한 함수 호출

1
2
3
4
5
6
7
8
9
10
11
12
def f(n):
    if n<=2:
        return 1
    else:
        return g(n-1) + f(n-2)
def g(n):
    if n<=2:
        return 1
    else
        return f(n-1) + g(n-2)

print(f(10))

55


5

함수 sum() 연습

(a)

1
2
x=[1,2,3,4]
print(sum(x))

10


(b)

1
2
3
4
m = [x for x in range(10) if x%3 == 1]
n = [x for x in range(10) if x%3 == 2]
y = [t*u for t in m for u in n]
print(sum(y))

180


6

matplotlib.pyplot 이용하여 그래프 그리기 컴파일러 : python 3.5 이상 & 아나콘다 필요

1
2
3
4
5
6
7
8
9
10
11
12
13
14
%matplotlib inline
import matplotlib.pyplot as plt
import math

x = [(t/1000-0.5)*20 for t in range(1000)]

def graph(f,x):
    y = [f(t) for t in x]
    plt.plot(x,y)

def f(x):
    return 1/math.exp(x**2)*math.cos(5*x)

graph(f,x)