마케팅/파이썬

파이썬 기초7. 함수

내이름은뭘까 2023. 5. 30. 13:59

1.함수란?

특정 기능을 구현하는 부분을 따로 떼어 구현하는 것

서브루틴(subroutine), 루틴(routine), 메서드(method), 프로시저(procedure)라고도 부름

-함수(function) : 여러 개의 명령을 하나의 단위로 묶어 놓음, 주로 반복적으로 사용하는 코드를 함수로 묶음

-클래스(class) : 관련 변수와 함수를 하나로 묶은 것

-모듈(module) : 여러 개의 함수를 묶어 놓은 것, 프로그램 일부를 독립적인 파일로 관리하는 것

 

2.def 함수명 (매개변수):

함수 호출할 때 사용

def print_address():
    print("서울특별시 종로구 1번지")
    print("파이썬 빌딩 7층")
    print("홍길동")
print_address()  #함수호출, 함수가 호출되어야만 함수 안의 코드가 실행됨

 

 3. 함수에 1개의 인수 넣기

사용자 함수를 호출 할때 작업에 필요한 인수(argument)를 전달할 수 있음

매개변수(parameter)란 인수를 담아 함수 내에서 쓰이는 값 의미

 

예제1) 같은 건물에 사는 여러 다른 사람에게 우편물 보내기

def print_address(name):
    print("서울특별시 종로구 1번지")
    print("파이썬 빌딩 7층")
    print(name)
    
print_address("홍길동")
print_address("김코드")
print_address("나함수")

*인수는 호출 프로그램에 의하여 함수에 실제로 전달되는 값이며, 매개변수는 이 값을 전달하는 변수임

 

4. 함수에 여러개의 인수 전달하기

 

예제2) 2개의 정수의 합을 구하는 함수 작성하기

def get_sum(start,end):
    sum=0
    for i in range(start,end+1):
        sum= sum+i
    print("sum=",sum)

get_sum(1,10)
get_sum(1,20)

5. return - 함수 값 반환하기

-함수로부터 되돌아오는 반환 값을(return value)라고 함

-함수 호출을하여 수행했어도, 반환 값을 사용하지 않을 수 있음

-함 수값이 여러 개 반환할 수 있음

-return만 단독으로 사용 가능

-return은 return함수를 만나면 종료됨

 

예제3) 원의 면적을 구하는 함수 작성

def calculate_area(radius): #함수 정의
    area=3.14*radius**2
    return area #함수 값 반환
c_area=calculate_area(5.0) #함수 호출
print(c_area)

area_sum=calculate_area(5.0)+calculate_area(10.0) #수식이 적용된 함수 호출
print(area_sum)

6. 지역변수(local variable), 전역변수(global variable)

-함수 안에서 생성되는 변수 -> 지역변수

지역변수는 함수 종료 후 사라짐

-프로그램 어디서나 사용가능한 변수 -> 전역변수

 

7.디폴트 인수(default argument, 기본인수)

-함수의 매개변수 값에 기본값 지정할 때 사용

-인수의 개수가 부족한 경우 기본값 매개변수 처리 장치를 디폴트 인수로 함

def greet(name, msg="잘 지내죠?"):
    print("안녕",name,",",msg)
greet("영희")

8.키워드 인수(keyword argument)

인수의 앞에 키워드를 두어 인수 위치와 관계없이 인수를 구별하는 데 사용

즉, 인수의 이름을 명시적으로 지정하여 전달하는 방법

def calc(x,y):
    return x -y

print(calc(x=10,y=20))
print(calc(y=20,x=10))

*위치 인수와 키워드 인수를 섞어 사용 가능하지만, 반드시 위치인수가 키워드 인수 앞에 나와야 함

 

예제4) BMI 계산기 프로그램

def BMI(height,weight):
    result=weight/(height*height)
    return result

def result_print(result):
    if result <18.5:
        print("당신은 저체중 입니다.")
    elif result <23:
        print("당신은 정상 입니다.")
    elif result <25:
        print("당신은 과체중 입니다.")
    else:
        print("당신은 고도비만 입니다.")


h=float(input("키를 m단위로 입력하세요:"))
w=float(input("몸무게를 kg단위로 입력하세요:"))    

result=BMI(h,w)
result_print(result)