Python - def(함수),lambda(람다함수)

2020. 9. 2. 20:03Python

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
# test5.py
 
# 함수 : 자주 사용하는 명령들을 모아서 정의
# 함수 이름 호출 사용
# def 함수이름(매개변수):
#     실행문1
#     실행문2
#     return
 
# 두수를 받아서 두수의 합을 구해서 리턴
def sum(a, c):
    return a + c
 
 
# 함수호출
print(sum(2010))
 
# eng함수를 받아서 합을 구해서 리턴 sum2()
eng = [9080705060]
 
 
def sum2(eng):
    a = 0
    for i in eng:
        a += i
    return a
 
 
print(sum2(eng))
 
 
# eng 점수를 받아서 최대값을 구해서 리턴 max2() 함수 정의
def max2(eng):
    c = 0
    for a in eng:
        if a > c:
            c = a
    return c
 
 
print(max2(eng))
 
 
# *a 는 가변인자.
def sum3(*a):
    # *a 리스트 변수
    s = 0
    for i in a:
        print(i)
        s += i
    return s
 
 
print(sum3(123))
print(sum3(123456))
print(sum3(12345678910))
 
 
# 함수 매개변수 초기값 설정, 마지막인수 설정, 호출시 생략가능
def my(name, old, man=True):
    print(name)
    print(old)
    print(man)
 
 
my("홍길동"21)  # 기본값 호출 시 생략 가능
my("유관순"18False)
 
# lambda() 람다함수 한줄 함수 정의
# 함수이름 = lambda 매개변수1, 매개변수2,...: (실행문)변수1+변수2,...
 
# def sum(a,b):
#     return a+b
 
lsum=lambda a,b:a+b
print(lsum(1,2))
 
# square() 두수를 받아서 a**b 람다함수 정의
square=lambda a,b:a**b
print(square(2,5))
 
# myList=[lambda 함수,lambda 함수]
myList=[lambda a,b:a+b,lambda a,b:a**b]
# myList[0](3,4)
print(myList[0](3,4))
print(myList[1](4,5))
 
# 내장함수 이용 map(), lambda 함수
# map(람다함수,리스트자료)
# two_times 함수 - 리스트를 받아서 *2 -> list에 저장
def two_times(numList):
    result=[]
    for a in numList:
        result.append(a*2)
    return result
print(two_times([1,2,3,4]))  # 2,4,6,8
 
# 람다함수 하나의수를 받아서 *2
ltwo_times=lambda a:a*2
print(ltwo_times(10))
 
# list(map(람다함수, 리스트자료))
print(list(map(ltwo_times,[1,2,3,4])))  # 2,4,6,8
print(list(map(lambda a:a*2,[1,2,3,4])))  # 2,4,6,8
 
# list, map 람다함수 리스트 자료형
# list *100 -> list
li=[1.25,3.45,2.56,5.77,8.78]
print(list(map(lambda a:int(a*100),li)))
 
# filter(람다함수, 리스트)람다함수를 통해서 데이터 선택해서 결과
def pos(x):
    return x>0
 
print(list(filter(pos,[1,-3,2,0,-5,6]))) # 1,2,6
 
# pos ->람다함수 변경
print(list(filter(lambda a:a>0,[1,-3,2,0,-5,6]))) # 1,2,6
 
# 내장 함수
len("문자열")  # 길이
# max(),min(),type(),int(),float(),str(),list(),tuple(),set()
# abs()  # 절대값
print(divmod(7,3))  # (몫,나머지) 리턴
eval('1+2')  # 식-> 계산해주는 함수
pow(2,3)  # 2의 3승
ord('a')  # 아스키코드값
oct(9)  # 8진수
hex(17)  # 16진수
sorted([3,1,2])  # 정렬
# range(1,11,1)
print(all([1,2,3,4,0]))  # 모두 0이 아닌값 True  0 하나라도 있으면 False
print(any([1,2,3,4,0]))  # 0하나라도 아닌값 True   모두 0이면 False
cs

파이썬의 함수를 배워보았고 함수 정의를 내릴 때는 def 함수명(조건):으로 정의를 내리고 시작하고

들여 쓰기를 해서 자바에서의 중괄호와 같이 구별을 하며 리턴해주고 다를 건 없었다.

lambda 함수는 좀 특이한 함수였는데 한줄로 함수의 모든 기능을 구현하게 해주는 함수였다.

처음엔 좀 무슨 말이지..? 했는데 알고 나니 되게 간단하게 사용 가능한 기능이었다. 

그 외에도 여러 내장 함수를 알게 되었는데 무척이나 이름들이 간단해서 오히려 약간 헷갈릴 거 같다. 이런 게 있구나 하고 넘어간 뒤에 나중에 다시 보면서 익숙해져야 하겠다.

'Python' 카테고리의 다른 글

Python - Exception  (0) 2020.09.02
Python - class,상속  (0) 2020.09.02
Python - for문,while 문  (0) 2020.08.21
Python - 리스트,배열  (0) 2020.08.21
Python - if 문  (0) 2020.08.21