Python 함수

Coding-Luizy·2022년 7월 17일
2

python

목록 보기
7/9
post-thumbnail

함수

함수 형태

def 함수명(매개변수) :
	실행문
    return 리턴값

함수는 기존에 알던 C랑 유사하다.

리턴자료형 함수명(매개변수){
실행문;
return 리턴값;
}

리턴 자료형을 미리 정의할 필요 없다는것외에 리턴이 없어도 되고, 매개변수가 없어도 되는것, 함수내의 변수의 수명까지 비슷하다.

C와의 차이점

  • 리턴 자료형을 미리 정의할 필요 없다는것외에 리턴이 없어도 되고, 매개변수가 없어도 되는것, 함수내의 변수의 수명까지 비슷하다.
  • 글로벌 변수를 쓸때 python은 함수 내에서 global이라는 명령어를 써야 사용가능하고 c는 그냥 상위 범위의 변수가 사용된다.
# vartest_global.py
a = 1 
def vartest(): 
    global a 
    a = a+1

vartest() 
print(a)
int a=1;
void vartest(){
a += 1;
}
void main(){
vartest();
}

함수의 여러가지 형태

매개변수가 몇 개 인지 모를때

*을이용해 여러개의 매개변수를 튜플형태로 한번에 받을 수 있다

def add_many(*args):
    result = 0
    for i in args:
        result += i
    return result
  • 이때 args는 매개변수 이름이므로 바꿀 수 있으나 통상적으로 args를 쓴다고 한다.
  • **을 이용하면 변수명이 key이고 변수값이 value가되는 딕셔너리형태의 매개변수가 함수에 전달된다.

리턴값을 여러개 넣을경우

def func(a,b):
	return a+b, a*b

이럴경우 (a+b,a*b)형태의 튜플이 리턴된다.

return의 단독사용

def say_nick(nick): 
	if nick == "바보": 
		return 
	print("나의 별명은 %s 입니다." % nick)

이럴경우 반복문의 break처럼 함수를 바로 빠져나오게된다.

매개변수의 초기값 설정

def say_myself(name, old, man=True): 
    print("나의 이름은 %s 입니다." % name) 
    print("나이는 %d살입니다." % old) 
    if man: 
        print("남자입니다.")
    else: 
        print("여자입니다.")

위와같이 초기값을 설정할 매개변수를 매개변수 뒷쪽에 위치시켜 매개변수가 전달되지 않을때 초기값으로 사용될 수 있다.

lambda함수

조건문에 조건부 표현식이 있다면 함수에서는 lambda와 같이 더 간편하게 함수를 활용 할 수 있는 방법이 있다.
아래 코드는 완전히 동일한 역할을한다.

add = lambda a, b: a+b
def add(a,b) :
	return a+b

lambda함수는 형태가 간단해 리스트와같은 자료형안에도 들어갈 수 있는게 특징이다.

profile
Better Tomorrow

0개의 댓글

관련 채용 정보