배운것 : 함수 ,람다식, pandas, numpy 를 사용한 csv파일 및 df편집
함수: 독립된 명령, 필요할때마다 호출해서 사용
종류: 인스턴스 함수, 내장 함수
인스턴스 함수: 단독으로 사용가능, replace(), format, upper()등등..
a=[1,2,3,4,5]
a.append(6)
print(a) //출력 [1,2,3,4,5,6]
내장 함수: python 내부에 이미 구현되어있는 함수
//내장함수
a=[1,2,3,4]
length=len(a)
print(length) //출력 4
함수 구현: 정의된 함수 뒤에 ":"을 붙여 수행할 코드 블럭을 만들어 놓는다.
def add(x,y):
n=x+y
return n
pritn(add(2,7)) //출력 9
default parameter(기본 인자 설정): 함수의 파라미터에 기본값 지정 가능, 파라미터에 값을 넣지 않으면, 사전에 지정한 값으로 자동설정
def print_x_y_z(x,y=10,z=5):
print(f"x: {x}, y : {y}, z : {z}")
print_x_y_z(1,2,3) //출력 x: 1, y : 2, z : 3
print_x_y_z(1) //출력 x: 1, y : 10, z : 5
print_x_y_z(1,100) //출력 x: 1, y : 100, z : 5
deafulat parameter 오른쪽에 일반 파라미터는 올 수 없으니 주의
//올바르지 않는 예시
def test(x,y=1,z)
def test(x=1,y,z)
def test(x=1,y=1,z)
keyword parameter: 함수의 파라미터 이름을 직접 명시하여 전달,키워드 파라미터는 반드시 일반 파라미터 뒤에 와야된다.
def test(x,y,z=30):
print(f"x: {x}, y: {y}, z: {z}")
test(10,20,30) //출력 x:10 y:20 z:30
test(y=20,z=30,x=10) //출력 x:10 y:20 z:30
test(10,y=20) //출력 x:10 y:20 z:30
multiple return : 복수 개의 값을 리턴한다. tuple로 자동 변환되어서 나온다.
def add_mul(x,y):
add_result=x+y
mul_result=x*y
return add_result, mul_result
print(add_mul(10,20)) //출력 (30,200)
r1,r2=add_mul(10,20)
print(r1) //출력 30
print(r2) //출력 200
가변 길이 파라미터: 전달되는 파라미터의 개수가 고정적이지 않을때 사용. 보통 "*args"로 표현한다,
def test(*args):
for item in args:
print(item)
test(10,2,30)
//출력
10
2
30
키워드 파라미터: **이 붙은 상태으 파라미터를 의미. 파라미터의 이름과 함께 값을 전달. dictionary의 형태로 파라미터가 결정된다.
def test2(**kwargs):
for item in kwargs.items():
print(item)
test2(
name="Alex",
age=27,
email="abcdefg@gmail.com"
)
//출력
('name','Alex')
('age',27)
('email','abcdefg@gmail.com')
def test3(*args, **kwargs):
print(args)
print(kwargs)
test3(10,20,30,"a":1,"b":2,"c":3)
//출력
(10,20,30)
{'a':1,'b':2,'c':3}
람다식: 단일문으로 표현되는 익명함수. 1회성이다.
//x를 제곱하는 함수
def a1(x):
return x**2
a1(5) //출력 25
//람다로 변경시
a2=lambda x: x**2
a2(5) //출력 25
람다식을 사용하여 리스트내의 이름을 글자 순대로 정렬
names=["alex","bob","teddy"]
names.sort(key=lambda s:len(s))
names
sort에서의 키값은 정렬기준을 뜻한다.
'ICT COG Academy > AI 기본' 카테고리의 다른 글
ICT COG Academy 5일차(1) (0) | 2021.03.06 |
---|---|
ICT COG Academy 4일차(2) (0) | 2021.03.05 |
ICT COG Academy 3일차 (0) | 2021.03.01 |
ICT COG Academy 2일차(2) (0) | 2021.02.23 |
ICT COG Academy 2일차(1) (0) | 2021.02.21 |