빅데이터 서비스 교육/Python

Python 함수

Manly 2022. 5. 3. 12:49
반응형

함수

  • 기능
  • 하나의 특별한 목적을 수행하기 위해 독립적으로 설계된 코드의 집합

함수의 필요성

  • 반복적인 프로그래밍을 피할 수 있음
  • 손쉽게 유지보수가 가능함
  • 모듈화로 인해 전체적인 코드의 가독성이 좋아짐

# 함수 기본 구조

# def -> define 정의하다
def 함수명(매개변수1, 매개변수2):
    실행문장
    return 반환변수

 

# 더하기 기능하는 함수      함수 정의 과정

def number_sum(num1,num2):
    result = num1+num2
    return result

# 함수 사용하기  -> 호출

number_sum(3,10)

13

# 두 수를 입력 받아서 뺀 결과를 return하는 함수를 정의하시오
num1 = int(input('첫 번째 정수 입력>>'))
num2 = int(input('두 번째 정수 입력>>'))

def number_sub(num1,num2):
    result = num1-num2
    return result                        #이때 result는 지역변수
result = number_sub(num1,num2) #이때 result는 전역변수
print(result)

 

# 더 큰수에서 빼주려면 number_sub 함수안에 다음 조건문 추가

    if num1>=num2:
        result = num1-num2
    else:
        result = num2-num1

첫 번째 정수 입력>>10
두 번째 정수 입력>>3
7

# 조건문, 반복문 상황에서는 전역, 지역 구별을 크게 하지 않는다. 
#  (if문들의 안 result와 마지막 출력문 result)
# 함수 안과 밖의 지역과 전역변수는 구별한다.

# 함수 안과 밖
# 지역변수와 전역변수
a = '빅데이터'
def temp():
    a = 1
    print('함수 안:',a)
print('함수 밖:',a)
temp()

함수 밖: 빅데이터
함수 안: 1

# global 키워드 - 지역과 전역 변수를 연결하는 키워드


a = '빅데이터'
def temp():
    global a
    a = 1
    print('함수 안:',a)
print('함수 밖1:',a)
temp()
print('함수 밖2:',a)

함수 밖1: 빅데이터
함수 안: 1
함수 밖2: 1

# 문자열을 입력받아 'ㅋ'을 제거하고 return하는 함수를 정의하시오

def s_replace(s):
    result = s.replace('ㅋ','')                #변수명.replace('제거할 문자열','대체할 문자열')
    return result
s = input("문자열 입력 >> ")
result = s_replace(s)
result

문자열 입력 >> ㅋ을 모두 지워주세요ㅋㅋㅋㅋㅋㅋ
'을 모두 지워주세요'

독스트링(docstring)

  • 함수의 설명을 작성 (shift + tab)

# 정의
def s_replace(s):
    """이 함수는 ㅋ을 찾아서 제거해주는 함수입니다."""
    result = s.replace('ㅋ','')

매개변수 - 가변매개변수

  • 함수 호출 시 몇개의 인수가 전달될지 알 수 없을때 사용

def 함수명(*매개변수):
    실행문장
    return 결과


# 더하는 기능 하는 함수
def add(*num):
    print(sum(num))
# 호출 - 사용법
add(1,2,3,4,5)

15

매개변수 - 기본값 설정

def add(num1,num2=10):          #num2의 값이 10으로 고정일 때
    return num1+num2

add(12)

add(12,5)    # 이렇게도 가능

22
17

return키워드

  • 반환값은 언제나 하나
  • 함수 안에서 리턴은 한번 실행
  • 리턴을 만나면 함수 밖으로 나감

def add_sub(num1,num2):
    return num1+num2, num1-num2

add_sub(10,5)

(15, 5)

함수 기본 형식

# 1. 매개변수 x, 리턴 x
def hi1():
    print('안녕~')
a = hi1() #리턴값이 없어서 들어오는 결과가 None  
print(a)

안녕~
None

# 2. 매개변수 o, 리턴 x
def hi2(name):
    print(f'{name}야 안녕~')
a2 = hi2('현우')
print(a2)

현우야 안녕~
None

# 3. 매개변수 x, 리턴 o
def hi3():
    return '안녕하세요!'
a3 = hi3()
print(a3)

안녕하세요!

# 4. 매개변수 o, 리턴 o
def hi4(name):
    return f'{name}야 안녕~'
a4 = hi4('상희')
print(a4)

상희야 안녕~

# 모듈(라이브러리) 임포트(불러오기)

import jm_module as jm   #이 모듈 불러와서 jm이라는 별칭으로 부르겠다

jm_module.hi1()

안녕~

jm_module.hi3()

'안녕하세요!'

jm.hi1()

안녕~

jm.hi2('현우')

현우야 안녕~

# hi4 함수만 불러오는 방법

from jm_module import hi4,hi2

hi4('현우')

'현우야 안녕~'

hi2('현우')

현우야 안녕~
반응형

'빅데이터 서비스 교육 > Python' 카테고리의 다른 글

Python 딕셔너리  (0) 2022.05.03
Python 반복문(while, for)  (0) 2022.04.29
Python 튜플  (0) 2022.04.29
Python 리스트  (0) 2022.04.29
Python 조건문  (0) 2022.04.29