# 세줄요약 #
1. def 키워드를 사용하여 함수를 정의한 뒤 호출하여 사용하면 결과값을 반환해주며, 함수를 사용하면 코드를 반복되는 코딩을 줄여 전체 코드를 간결하게 작성할 수 있다.
- def: 함수나 메소드를 정의하는 키워드, definition의 약자
#code block#
def function(param):
"""
codeblock
"""
return result
val = function(param) # [output]: val = result
- 함수 이름을 쓰면 그 함수가 호출되어 아래 정의된 코드블록을 실행하고, 해당 결과를 반환(return)해준다.
2. 매개변수(Parameter): 함수에 입력되는 변수로 함수가 호출되면, 매개변수가 입력되어 코드블록에서 입력된 매개변수 값을 연산하고 해당 결과가 반환되어 나온다.
- 일반적으로 매개변수를 생략하면 에러가 뜨기에 매개변수를 반드시 입력해야 한다.
#code block#
def sum(a, b):
return a + b
sum(1, 2) # [output]: 3
sum() # [output]: Error!
- 기본값 매개변수: 매개변수 정의 시 미리값을 할당하여 입력을 생략할 수 있다.
#code block#
# 기본값 매개변수
def print_loop(text, count = 1):
for i in range(count):
print(text)
print_loop('hello') # count를 생략하여도 1이 기본값으로 저장
# [output]: 안녕하세요
print_loop('hello', 2)
# [output]: 안녕하세요
# [output]: 안녕하세요
- 키워드 매개변수: 호출자가 매개변수를 일일이 지정하여 데이터를 입력
#code block#
def print_info(name, position='researcher'):
print('name = {}'.format(name))
print('position = {}'.format(position))
print_info(name='펄서까투리') # position 생략 시 기본값은 'researcher'
# [output]: name = 펄서까투리
# [output]: position = researcher
print_info(name='펄서까투리', position='manager') # position 키워드를 불러와서 새로 지정
# [output]: name = 펄서까투리
# [output]: position = manager
- 가변 매개변수: 상황에 따라 변수의 수를 변화시킬 수 있다.
- 매개변수 앞에 *를 붙이면 가변 매개변수로 지정
- *를 이용하여 정의된 가변 매개변수는 튜플
- 따라서 가변 매개변수는 순서열처럼 동작함
#code block#
def merge_string(*text_list):
result = ''
for s in text_list:
result = result +s
return result
merge_string('펄서까투리의 ', '세줄요약 ', '블로그')
# [output]: 펄서까투리의 세줄요약 블로그
- 변수의 범위(scope)
- 지역변수(Local Variable): 함수 안에서 만든 변수는 함수 안에서만 살아있다가 함수 코드의 실행이 종료되면 그 생명을 다함.
- 전역변수(Global Variable): 프로그램 전체를 유효 범위로 가지는 변수, global 키워드를 사용하여 지정
#code block#
def scope_test():
a = 1
global b
b = 1
print('a = {} , b = {}'.format(a, b))
a = 0
b = 0
scope_test()
print('a =', a, ', b =', b)
# [output]: a = 1 , b = 1
# [output]: a = 0 , b = 1
3. return: 함수가 결과값을 반환하는데 사용하며 return을 어떻게 사용하느냐에 따라 함수의 결과값 제공방식이 달라진다.
- return문에 결과값을 담아 실행: 함수 종료 후 저장된 결과값으로 반환
#code block#
def my_abs(num):
if num < 0:
return num * -1
elif num > 0:
return num
a = my_abs(-1) # [ouput]: a => 1
b = my_abs(1) # [ouput]: b => 1
c = my_abs(0) # [ouput]: type(c) => NoneType
# * return을 실행하지 못하고 함수가 종료되면 함수는 None을 반환
- return문에 아무 결과도 넣지 않고 실행: 함수가 즉시 종료
#code block#
def print_range(num):
for i in range(num):
print(i+1, end=' ')
if i+1 == 5:
return
print_range(3)
# [output]: 1 2 3
print_range(8)
# [output]: 1 2 3 4 5
- return문을 생략: 함수의 모든 코드 실행 후 종료
#code block#
def print_some():
print('hello', end=' ')
print('my', end=' ')
print('world', end=' ')
print_some()
# [output]: hello my world
* 출처: 뇌를 자극하는 파이썬3 / 박상현 / 한빛미디어
728x90
728x90
'교재 리뷰 > 뇌를 자극하는 파이썬3' 카테고리의 다른 글
뇌를 자극하는 파이썬3 - 9. 클래스 (0) | 2019.11.11 |
---|---|
뇌를 자극하는 파이썬3 - 8. 모듈과 패키지 (0) | 2019.10.25 |
뇌를 자극하는 파이썬3 - 6. 프로그램의 흐름 제어하기 (0) | 2019.10.22 |
뇌를 자극하는 파이썬3 - 5. 데이터 다루기: 리스트와 튜플과 딕셔너리 (0) | 2019.10.22 |
뇌를 자극하는 파이썬3 - 4. 데이터 다루기: 수와 텍스트와 비트 (0) | 2019.10.21 |
댓글