def 함수명(매개변수) :
실행문
return 리턴값
함수는 기존에 알던 C랑 유사하다.
리턴자료형 함수명(매개변수){
실행문;
return 리턴값;
}
리턴 자료형을 미리 정의할 필요 없다는것외에 리턴이 없어도 되고, 매개변수가 없어도 되는것, 함수내의 변수의 수명까지 비슷하다.
# 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
def func(a,b):
return a+b, a*b
이럴경우 (a+b,a*b)형태의 튜플이 리턴된다.
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와 같이 더 간편하게 함수를 활용 할 수 있는 방법이 있다.
아래 코드는 완전히 동일한 역할을한다.
add = lambda a, b: a+b
def add(a,b) :
return a+b
lambda함수는 형태가 간단해 리스트와같은 자료형안에도 들어갈 수 있는게 특징이다.