1 life 2 live
파이썬 기초 프로그래밍(8-1) - 함수(선언, 인자) [20.7.26] 본문
1. 함수의 필요성
■ 덧셈을 하는 프로그램을 작성해야 한다.
º 첫 번째 입력은 숫자 2 개가 들어온단다.
º 두 번째 입력에서는 숫자 3 개가 들어온단다.
º 세 번째 입력에서는 숫자 4 개가 들어온단다.
■ 세 번의 덧셈이 필요하겠구나!
º 숫자 2개를 입력받고 더하고,
º 숫자 3개를 입력받고 더하고,
º 숫자 4개를 입력받고 더하면 되겠구나!
■ 이런 식으로 하면 되나?

■ 조금 더 간단하게 작성해볼까?

■ 중복된 패턴, 더 효율적으로 작성 할 방법은 없을까?
■ 함수(function)
º 일을 수행하는 코드의 덩어리에 이름을 붙인 것
º 입력을 받아서 출력을 내보내는 박스로 생각할 수 있다!
■ 함수의 형태


■ 함수가 적용된 예제

■ 중복되는 코드는 딱 한번만!
■ 동일/유사 기능이 필요하다면 해당 함수를 호출하자!
2. 함수의 선언
■ 이름
º 함수의 이름. 이 이름을 통하여 해당 함수를 호출 할 수 있음.
º 소문자로 명명. 길어질 경우 밑줄(‘_’)로 분리
■ 입력
º 인자, 인수, 아규먼트, 파라미터 등으로 불리며 함수의 재료가 됨
º 입력이 없을 수도 있음
■ 수행내용
º 함수가 작업하게 되는 내용을 구현한 것
■ 결과
º 함수가 반환하는 최종 결과 값
º 결과가 없을 수도 있음
■ 함수 사용 예제

º 함수 이름: sum
º 함수 인자: 두 개가 입력이 필요하며, a와 b라는 이름으로 활용
º 함수 내용: 인자 a와 b를 더하여 result 변수에 할당한 후 반환
º 함수 결과: result에 저장되어 있는 값이 반환 됨
3. 실습
■ 실습1) 문자와 숫자 N을 입력으로 주면 해당 문자가 N 개 포함되어 있는 리스트를 반환하는 make_list() 함수를 작성해보자

↓정답
def make_list(msg, count):
new_list=[]
for i in range(count):
new_list.append(msg)
return new_list
a = make_list('A',10)
print(a)
■ 실습2) 길이가 10인 리스트 2개를 입력하면 아래와 같이 출력하는 함수를 작성해 보자

↓정답
def make_list(msg, count):
new_list=[]
for i in range(count):
new_list.append(msg)
return new_list
def join_list(fst, snd):
for i in range(10):
print(fst[i],snd[i], end=" ")
a = make_list('A',10)
b = make_list('B',10)
join_list(a,b)
4. 함수의 형태
■ 입력과 결과가 있는 일반적인 함수
º return: 결과를 ‘반환’하기 위한 키워드

■ 일반 함수의 예)

■ 함수 사용/호출법: 결과값을 받을 변수 = 함수명(입력1, 입력2, ...)
º 예) sum_result = sum(2, 3)
■ 입력이 없는 함수

■ 입력이 없는 함수의 예)

■ 함수 사용/호출법: 결과값을 받을 변수 = 함수명()
º 예) result = hi()
■ 결과가 없는 함수

■ 결과가 없는 함수의 예)

■ 함수 사용/호출법: 함수명(입력1, 입력2, ...)
º 예) sum(3,5)
º 결과 값을 받기 위해 변수에 할당하면 어떻게 될까?

-> 결과 출력이 아무것도 안나옴
■ 입력도 결과도 없는 함수

■ 입력도 결과도 없는 함수의 예)

■함수 사용/호출법: 함수명()
º 예) code()
5. 함수의 인자
■ 함수 선언 시 입력받을 데이터의 갯수, 이름등을 설정

º 입력되는 인자의 갯수는 2개
º sum() 함수에서 a와 b라는 변수를 통하여 사용 가능
º 입력인자의 의미를 명확히 알 수 있게 명명
6. 함수의 가변 인자
■ 2개의 숫자를 입력받아 더하기 위한 함수를 작성해보자

■ 3개의 숫자를 입력받아 더하기 위한 함수를 작성해보자

■ N개의 숫자를 입력받아 더하기 위한 함수를 작성해보자
º 인자 이름 앞에 *를 붙여준다!
º 가변길이 변수를 통하여 튜플의 형태로 제공 됨

■ 어떻게 활용하는가?
º 일반 함수 호출과 동일!

7. 실습
■ 실습) 문자열의 약어를 추출하기 위한 함수를 작성해보자.
º 함수 호출

º 함수 동작 예) → LOL
↓정답
def ext_abbr(*args):
for i in args:
print(i.capitalize()[0], end='')
print()
ext_abbr('League','of','Legend')
'파이썬' 카테고리의 다른 글
| 파이썬 기초 프로그래밍(9-1) - 파일처리 [20.7.28] (0) | 2020.07.28 |
|---|---|
| 파이썬 기초 프로그래밍(8-2) - 함수(지역변수, 전역변수) [20.7.27] (0) | 2020.07.27 |
| 파이썬 기초 프로그래밍(7) - 자료구조3 (문자열) [20.7.25] (0) | 2020.07.25 |
| 파이썬 기초 프로그래밍(6-2) - 자료구조2 (딕셔너리) [20.7.18] (0) | 2020.07.18 |
| 파이썬 기초 프로그래밍(6-1) - 자료구조2 (세트) [20.7.17] (0) | 2020.07.17 |