1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
#-*- coding:utf-8
'''
Created on 2022. 4. 6.
@author: hwakgo
'''
def minus(a,b):
return a-b
#★ 함수 호출해서 인자 넘길 때 쓴 순서대로 20은 a에 3은 b에 들어가는데
print(minus(20,3))#▶ 17
#★ 이렇게 콕! 집어서 넣는 것도 가능하다(순서 상관 X) 매개변수가 너무 많을 때 이렇게 사용
print(minus(b=100,a=20))#▶-80
print()
def func1(x,y=100,z=200):#★ 함수를 정의할 때 미리 인자에 기본값을 설정할 수 있다
return x + y + z
#함수에 인자가 3개면 호출할 때 3개의 인자를 보내야 하는데 func함수는 2개가 이미 기본값이 설정되어 있어서 1개만 보내도 된다
print(func1(10))#▶310
#★ 인자에 기본값이 설정되어 있어도 호출해서 넘기는 값을 우선한다. 콕 찝어서 값을 넣지 않고 있으므로 순서대로 들어감
print(func1(10,20))#▶230
print(func1(10,20,30))#▶60
print()
#func2함수 정의
def func2(*args):#★ *의 의미 : 인자 값이 없거나, 여러 개의 인자 값을 받을 수 있음
for i in args :
print(i,"/",end='')
print('')
#인자 값 없이 호출만 해도 되고
func2()
#*가 있어서 여러 개 인자를 넘겨도 된다
func2(1,2)
#▶1 /2 /
func2(1,2,3,4,5)
#▶1 /2 /3 /4 /5 /
#리스트, 튜플도 넘길 수 있음
func2([1,2,3],(4,5,6))
#▶[1, 2, 3] /(4, 5, 6) /
func2('apple','orange','banana')
#▶apple /orange /banana /
print()
def func3(x, *args):#최소 1개 반드시 받아야 하는 경우 별표(*) 없는 변수 하나 추가로 설정(최소 2개 인자 받아야 하는 경우 x,y,*args 이런 식으로..)
for i in args :
print(i, "/", end= '')
print('')
func3(1,2)
#▶2 /
#for문에는 x가 없어서 1이 넘어가지만 출력은 X(반드시 인자가 한 개 이상 들어가야 함)
func3(1,2,3,4,5)
#▶2 /3 /4 /5 /
print()
tp = (1,2,3)
def func4(a,b,c):
print('func4:',a,b,c)
func4(tp[0],tp[1],tp[2])
#▶func4: 1 2 3
#tp[0] => 1, tp[1] => 2, tp[3] => 3
def func5(a):
print('func5:',a)
func5(tp)#func5는 요소 하나(a)를 받게 설정했고 호출하면서 튜플 한 덩어리를 넘겨주고 있음
#▶func5: (1, 2, 3)
def func6(a,b,c):
print('func6:',a,b,c)
#func6(tp) 오류 남. func6은 요소 세 개(a,b,c)를 받게 설정했는데 튜플 한 덩어리를 넘겨주려고 하기 때문임
func6(*tp)#*를 붙여주면 해결
#▶func6: 1 2 3
print()
D = {'a':30, 'b':90, 'c':50}
def func7(a):
print('func7:',a)
func7(D)#▶func7: {'a': 30, 'b': 90, 'c': 50}
def func8(a,b,c):#★ 매개변수 이름은 key 이름과 통일 시켜야지 value를 가져올 수 있음
print('func8:',a,b,c)
func8(*D)#▶func8: a b c
#dict 변수 앞 별을 1번(*) 사용하면 key만 들어감
func8(**D)#▶func8: 30 90 50
#dict 변수 앞 별을 2번(**) 사용하면 value가 들어감
print()
#1~10 합계
total = 0
for i in range(1,11,1):
total += i
print(total)
#▶10
#1~10 합계 재귀 호출 반복문으로 작성할 수 있음
def recursive(n):
if n==1 :
return 1
return n + recursive(n-1)
print(recursive(10))#▶55
#10+recursive(9)=>
#10+(9+recursive(8))=>
#19+(8+recursive(7))=>
#27+(7+recursive(6))=>
#34+(6+recursive(5))=>
#40+(5+recursive(4))=>
#45+(4+recursive(3))=>
#49+(3+recursive(2))=>
#52+(2+recursive(1))=>
#54+1=55
print(recursive(5))#▶15
print(recursive(3))#▶6
|
cs |
▼ (이전 게시물) [확고의 쓱~ 훑어보는 기록] Python - 함수 예제(1) (정의/사용법)
▼ (첫 번째 게시물) [확고의 쓱~ 훑어보는 기록] Python - 출력 예제 (print / str, int 함수 / 서식 문자 사용)
728x90
반응형
댓글