본문 바로가기
Python

[Python] 파이썬 기초 - 함수

by 끊임없는정진 2022. 11. 19.

▶함수

입력값이 있고 결괏값이 있는 함수가 일반적인 함수이나, 입력값이 없는 함수, 결괏값이 없는 함수(=돌려주는 값이 없는 함수), 입력값도 결괏값도 없는 함수도 있다. 다음과 같이 다양한 형태로 함수를 나타낼 수 있다.

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
# Python 함수의 구조
'''
def 함수명(매개변수):
    <수행할 문장1>
    <수행할 문장2>
    ...
'''
 
# 입력값이 몇 개가 될지 모를 경우 함수 (*args 를 쓰면 개수 제한없이 넣으라는 뜻)
def sum_many(*args):
    sum = 0
    for i in args:
        sum = sum + i
    return sum
print(sum_many(1,2,3))
 
# **kwargs: dictionary타입 제한없이 받을 수 있는 매개 변수
def print_kwargs(**kwargs):
    for k in kwargs.keys():
        if(k == "name"):
            print("당신의 이름은 :" + kwargs[k])
 
# 여러개의 값을 함수가 return하면 tuple 형식으로 저장한다.
def sum_and_mul(a,b):
    return a+b, a*b, a-b
# 1번째 tuple값 출력 (a+b)
print(sum_and_mul(1,2)[0])
 
# return 값에 default값을 주기 (False를 주면 여자가 기본값)
# 단, default를 주는 값은 끝에 둬야한다. (Python은 순서대로 입력값을 인식하기 때문에)
def say_myself(name, old, man=True):
    print("나의 이름은 %s 입니다." % name)
    print("나이는 %d살 입니다." % old)
    if man:
        print("남자입니다.")
    else:
        print("여자입니다.")
 
say_myself("라이유튜브",20)
 
# return값으로 a를 다시 정의하기 위해선(def 안의 a는 지역변수) 함수로 a값을 다시 정의
= 1
def vartest(a):
    a = a + 1
    return a
 
= vartest(a)
print(a)
 
# 혹은 전역변수 global예약어를 사용
= 1
def vartest():
    global a
    a = a + 1
 
vartest()
print(a)
 
# lamda 함수로 축약모드 (간단한 함수의 경우)
add = lambda a, b : a+b
print(add(1,2))
# 활용
myList = [lambda a, b: a+b, lambda a, b: a*b]
# '3'을 출력 :
print(myList[0](1,2))
 
cs

 

 

댓글