TIL07.점프 투 파이썬(2)

Jaeyeon·2020년 12월 26일
0

def

내가 직접 설정 할 수 있는 함수!!

def add(a,b):
	return a+b
  • 입력값 없는 def
def say():		#()안에 아무것도 없음!
	return 'hi'
  • 리턴 없는 def
def add(a,b):
	print(a+b)	#리턴이 없음!
  • 입력값과 리턴 둘다 없는 def
def say():		#()없음!
	print('hi')	#리턴도 없음!

모두 가능하다!! (아량 넓은 def)

여러개의 입력값을 받을 수 있는 def

  • def add(*a)
    함수를 똑같이 선언하고 매개변수 앞에 별을 붙히면 ok

<다수의 숫자를 입력 받고 합을 출력!>

def add(*a):
	result = 0
    	for i in a:
        	result+=i
        return result

별을 두개 붙히면 딕셔너리로도 사용가능!!

def dic(**a):
	return a

define(정의)를 하고 함수를 사용해보자!

결과값:
dic(a=1)
{'a':1}

def 매개변수에 초깃값 미리 설정하기

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

introduce('원재연',25,True)
이렇게 사용하면
결과값은
나의 이름은 원재연 입니다.
나의 나이는 25 입니다.
남자

이렇게 출력이 된다!!
저기서 만약 True를 입력하지 않는다면
남자는 제외되고 출력이 될 것이다.

함수 안에서 함수 밖의 변수를 변경하는 방법?!

a=1
def test(a):
	a= a+1
    
    
    
test(a)

라는 코드를 입력하면??
결과값이 출력이 되지않는다!!
왜냐하면 a라는 변수는 전역변수가 아닌 지역변수이기 때문!!

이러한 문제를 해결 하기 위해서는

1. return 사용
2. global 명령어 사용하기

return은 평소 쓰던대로 그대로 쓰면 되고
global은

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

이렇게 사용해주면 a도 사용이 가능하다!!

나는 return을 주로 사용할 것 같다.

def을 한 줄로 줄이고 싶다면?! lambda

내가 정말 애용할 것 같은 함수이다.
사용법도 정말 간단.

add = lambda a,b:a+b

이것이
def add(a,b):
return a+b
와 같은 역할을 수행 한다는것!!

한줄로 깔끔히 요약이 가능해서 가독성도 늘어날 것 같고 간단해서 자주 사용할 것 같다!!

profile
생각하는 개발자 되기

0개의 댓글