상세 컨텐츠

본문 제목

파이썬 return과 args 및 kwargs개념

IT 공부/데이터분석

by 듀_77 2020. 7. 14. 13:34

본문

반응형

 

#1-31,32,33

파이썬 return과 args 및 kwargs개념을 배웠다.

C언어에서 return은 마지막 종결어 (마침표)같은

역할을 하는데..

파이썬은 비슷하면서도 좀 다른 느낌인 것 같다.

파이썬에서 함수 (def)를 사용할때

return 작성은 거의 필수적이다.

 

왜냐면 result라는 변수에 값을 넣어주려면

return이 필요하기 때문이다.

(없으면, 함수 결과를 보내주는 코드가 없어서

None값이 뜨게 된다.)

 

17행에서 print, return에 각각 대응하는 3 값이 출력됨.

 

return은 결과데이터를 저장해서 쭉 사용할 수 있게 만들어준다.

위의 3은 print때문에 출력되는 거고,

아래 3이 return 덕분에 출력되는 것.

 

그래서 return num1+num2를 작성하지 않으면

None이 뜨게 된다.

함수 중에서도 원래 return을 포함해주는 녀석들이 있다.

대문자로 바꿔주는 녀석인 upper는 

return을 따로 쓰지 않아도 바로 출력된다.

 

반면 sort는 return이 포함 안되어 있다.

return으로 결과데이터를 변수에 저장할 수 있다.

return(num1+num2)는 tuple값으로 받아들인다.

괄호를 안해줘야 int 형태로 return이 됨.

 

리턴이 있는지 없는지 유무는 docstring을 확인해보면 나온다.

 

return이 없으면 함수에서 실행된 결과 데이터를 저장할 수가 없다.

 

함수에서 기능이 사용됐는데

그 결과데이터를

 

함수가 실행되고 나서 나온 결과데이터를

밑에 코드에서 쓸 수 없게 된다.

 

그래서 이걸 쓰게 하려면 return이 보조제로 필요한 것.

코드를 위처럼 쓰면 깔끔하게 쓸 수 있다.

왼쪽보다 오른쪽이 더 좋은 코드!

그리고 파이썬에서도 return은 저장과 동시에 종료기능을 수행한다.

return을 쓰면, 그걸로 끝이다.

그 밑에 있는 코드실행이 되지 않는다.

#1-32

그리고 아규먼트와 키워드 아규먼트 개념!

갯수와 상관없이 여러 개를 계산하고 싶을 때 쓴다.

 

예를 들어

def plus(*args)를 쓴다고 하면

 

sum(1,2,3,4,5)를 다 써줄 필요없이

args 변수 하나로 퉁쳐줄 수 있다.

num1=6 처럼 지정값을 정해서 계산하고 싶다면

kwargs를 사용해야한다.

그냥 args를 사용하면 위에 빨간 박스처럼

오류가 뜨게 된다.

 

*args, **kwargs는 구분해서 쓰기!

 

위 13번 행 수식은 kwargs에 대한 sum값이 없어서

그대로 쓰게 되면 오류가 난다.

이게 kwargs를 제대로 쓴 것!

def plus(*args,**kwargs):

return sum(args)+sum(list(kwargs.values()))

 

위 수식대로 args값을 받은 인자는 15, kwargs값을

받은 인자는 13을 출력해서 

둘을 더한 값인 28이 나왔다.

 

--

사실 args나 kwargs 대신 아무 이름을 적어넣어도 상관없다.

*ㅇㅇ, **ㅇㅇ 위 형식만 지켜주면 된다.

그 이유는 *변수, **변수 형태로 작동이 되기 때문이다.

 

*변수: 여러개를 쓸 때 사용. 결과값이 '튜플'로 처리됨.

**변수: num1=3( 키워드=값 ) 을 계산할 때 씀.

각각의 키와 값을 가져오는 '딕셔너리'로 처리됨.

 

→ 그래서 위에 list 형변환을 시켜준 것.

→ kwargs. values 는 딕셔너리 형태기 때문에values(값)만 가져오기 위해서 쓴 것.

 

--

#1-33

리스트의 데이터를 하나씩 호출해서

아규먼트(*data) 로 설정되게끔 한다. 

 

만약 아규먼트(*data)를 설정 안한 상태면

[1,2,3] 하나가 통째로 넘어가서

num2와 num3의 공간이 비게 된다.

 

그래서 오류나는 것.

 

list, int, int가 들어가게 되어서 에러가 나는 것.

그런데 sum을 쓰게 되면 int형태로 변환되어서

 

1+2+3인 6이 들어가고,

6+10+20이 된다.

(오류 안 남)

이건 num2의 100값이 대입된다.

1+100+200해서 301 나오는 것.

 

이상 파이썬 return 개념과 아규먼트 개념을 알아보았다!

 

추가적인 정보는 다음 링크에서 얻을 수 있다.

https://brunch.co.kr/@princox/180#comment

 

 

[나름 중급 파이썬1] *args와 **kwargs

항상 헷갈리는 두 가지 다시 한번 살펴보자 | 이 글은 파이썬의 문법을 모르면 이해하기 어렵습니다. python의 함수 작성 요령, 인자(argument)와 파라미터를 이해한다면 도움이 되는 내용입니다. 아�

brunch.co.kr

blog.naver.com/sw4r/221504133335

 

[파이썬(Python)] 딕셔너리(Dictionary) 관련 함수 정리! [.keys() / .values() / .items() / .get() / .clear(), in]

이전 포스팅에서 딕셔너리를 기본적으로 어떻게 생성하고 수정하는지에 대해서 알아보았다. ​https://blog...

blog.naver.com

 

반응형

관련글 더보기

댓글 영역