본문 바로가기

Python

Loop / Functions- Lambda Expressions / def (함수만들기)


Loop

* 지금까지  사용한것은 함수를 호출(call)한것.

어딘가에는 함수의 실체 (정의, definition)가 있다.

 

LIST COMPREHENSION

  • 원본 리스트를 가지고, 다른 리스트를 만드는 방법
  • for 나 while 없이, loop 를 실행시키는 아름다운 방법

문법을 잘 보도록 하자.


Qeaust 1.

- score list 에서 점수가 짝수인 것만 리스트로 만들어보자.

- 리스트 컴프리핸션으로, 스코어가 짝수인것들은, 제곱한 값으로 리스트를 만들어보자.

[ data ** 2 for data in score_list  if data % 2 == 0 ]

출력 결과 

[7744, 5776, 3136, 4624]

FUNCTIONS

  • 함수란, 재사용 되는 코드 블럭 입니다.
  • Data or arguments 가 전달되고, 결과가 return 됩니다.
  • 우리가 프로그래밍 하다가, 반복되거나 재사용 되는 코드 블럭이 있으면, 이를 함수로 만들면 됩니다.
  • 남들이 이렇게 재사용 잘 되는 함수들을 미리 만들어 놓은 것들도 많습니다. 이를 라이브러리라고 합니다.
  •  

함수를 나타내는 정의 (문법) 를 외우자.

  • def
  • 함수이름
  • 파라미터의 의미
  • 리턴이란?


함수의 정의


함수의 실행 순서를 이해하자.

  • CPU가 어떠한 실행 순서로 동작하는가?


return 이 없는 경우


Parameter가 하나인 경우

- 어떤 숫자 1개를 함수의 파라미터로 입력받으면, 
- 그 숫자를 제곱해서 리턴하는 함수

 


Parameters 가 두개인 경우

- 어떤 숫자를 넣고, 그리고 그 숫자를 몇번 제곱할지를 넣으면
- 해당 숫자를 몇 제곱하여 리턴하는 함수


Return 값이 둘 이상인 경우

- 숫자를 두개를 입력받으면(함수) , 그 숫자들로 나눈 몫과 나머지를 리턴하는 함수


Default parameter

- 나이를 입력받으면, 나이가 몇인지 화면에 출력하는 함수

 


- 이름과 나이를 입력받으면, 다음처럼 출력하는 함수
- '제 이름은 ...이고, 나이는 ..살 입니다.'


LAMBDA EXPRESSIONS

  • Lambda function 은 anonymous function 이다. 즉 함수 이름이 없다.
  • Lambda functions 은 주로 filter(), map() , reduce() 함수와 함께 사용된다. 나중에~
  • 파라미터는 많아도 상관없지만, 연산은 딱 한줄이어야 한다.


Qeaust 1.

* 두개의 숫자를 입력받으면, 두 수의 나머지를 구하는 함수를 만드세요.


Qeaust 2.

* 함수의 인풋으로 하나의 숫자를 입력받아서, 입력받은 수까지의 짝수만 리스트로 반환하는 함수를 만드세요.

예) 7을 입력하면, 결과로 [2,4,6] 리스트를 반환.


Qeaust 3.

* 함수의 인풋으로 세개의 숫자를 입력받아서, 세 수의 합을 구하여 리턴하는, 함수 addition 를 만드세요. 함수명은 addition 입니다.


Qeaust 4.

* 함수 인풋으로 숫자 두개, 문자열 1개를 입력받아서, 더하기와 곱하기 연산을 하고, 리턴하는 함수를 만드세요.

함수명은 cal ( value1, value2, operator_str )

operator_str 은 'add', 'mul' 두가지 입니다.

만약 cal(3, 4, 'add') 이면 더하기를 하고 cal(3, 4, 'mul') 이면 곱하기를 합니다.


Qeaust 5.

* 과일 등급을 반환하는 함수를 작성하세요.

1. 함수의 인풋으로 과일 크기를 입력으로 받으면, 등급을 리턴하는 함수를 작성하세요.

2. 계속하여 유저한테 직접 과일 크기를 입력받아서 등급을 출력하세요. 단, 유저가 -1 을 입력하면, 프로그램을 종료합니다.


Qeaust 6.

* 함수의 인풋으로 리스트를 넘겨주면, 그 리스트의 평균값을 리턴하는 함수 arr_average 함수를 작성하세요. 함수 작성이 끝나면, 아래 a 리스트의 평균을 구해봅니다.


Qeaust 7.

* 1부터 20까지의 숫자를 생성해서, 각 숫자를 제곱한 값을 리스트로 만드세요. 리스트 컴프리핸션을 이용하세요.


Qeaust 8.

* 두개의 숫자를 입력받으면, 곱하기를 리턴하는 함수입니다. 단, 입력을 아무것도 주지 않으면, 3과 5를 입력받아서 15를 출력하는 함수를 만드세요.


Qeaust 9.

*세개의 숫자를 곱하는 람다함수를 만들고 , 유저한테서 세개의 숫자를 입력받으면, 람다함수를 호출하여 결과를 가져온후, 화면에 출력하세요.