함수의 구조 

 

def 함수명(매개변수):

    <수행할 문장1>

    <수행할 문장2>

     .......

    reture 리턴값

 

 

def sum(a,b):

    result = a+b

    return result * 정의만 한거임, print()를 넣어 줘야함 

print(sum(1,2))

3

 

#입력값이 없는 경우

def say():

   return 'hi'

print(say())

hi

 

#return출력값이 없음

def sum(a,b):

   print("%d,%d의 합은 %d입니다."%(a,b,a+b))

sum(1,2)

1,2의 합은 3입니다.

 

 

(feat. 들여쓰기)_ 이해잘안됐음

def sum_many(*args):

  sum=0

  for i in args:

    sum=sum+i

    return sum    *args 를 넣으면 몇개의 매개변수가 들어어온다고 정의 하지 않아도 됨 

print(sum_many(1,2,3))

 

1

 

def>for 때문에 def 가 끝이나면 함수도 끝이난다.

def 안에 있는 반복문은 return(들여쓰기2번) 값을 만나면 함수ㅇ가 끝이난다.

return 을 만났기 때문에 2,3 을 실행하지 않고1 만 실행후 끝이남.  

 

def sum_many(*args):

  sum=0

  for i in args:

    sum=sum+i

  return sum

print(sum_many(1,2,3))

 

6

 

return 값이 for 문안에 포함되어 있지 않기 때문에(들여쓰기 1번), for문 실행이 끝이난뒤 

return 값을 만났으므로 최종 6을 출력한다. 

 

 

# 출력값을 튜플 형태로 낼수 있음

def sum_and_mul(a,b):

  return a+b,a*b,a-b                        * return  값이 여러개 일경우

print(sum_and_mul(1,2))

 

(3, 2, -1)

 

def sum_and_mul(a,b):

  return a+b,a*b,a-b

print(sum_and_mul(1,2)[0])                *어떤 return 값을 출력 할지.인덱싱으로 []선택할수 있음

 

# 매개변수기본값을 설정 할수 있음 (주로기본값을 맨끝에 써야함)

def say_myself(name,old,man=True):

  print('나의 이름은%s 입니다.'%name)

  print('나이는%d살입니다.'%old)

  if man:

    print('남자입니다.')

  else:

    print('여자입니다'

say_myself("밍밍",90)

 

나의 이름은밍밍 입니다.

나이는90살입니다.

남자입니다.                    

 * input 에 man 을 True 값으로 기본값을 설정하였기 때문에 output 값에 따로 쓰지 않도 기본값인 True 나옴

만약 여자 인 False 값을 내고 싶다면,아래 와 같이 output에 False를 넣는다.

say_myself("밍밍",90,False)

 

#vartest

2를 출력하기 위한 또 다른 방법은,

a=1
def vartest():
  global a 
  a=a+1
vartest()
print(a)

2

 

#lambda (간단한 함수정의를 축약하여 표현할수 있는 함수)_ list 에 함수를 쓸수 있음 

 

#def add(a,b):

  #return a+b

#print(add(1,2)) * 값이 3이 된다, 이걸 아래와 같이 lambda 함수를 사용하여 간단하게 표현 가능함

 

add=lambda a,b:a+b

print(add(1,2))

3

 

#함수를 리스트 안에 넣은 예시

myList=[lambda a,b:a+b,lambda a,b:a*b]

print(myList[0](1,2))

3

 

+ Recent posts