Python/Python Language

Python(파이썬) 함수 def 사용하기

567Rabbit 2024. 4. 4. 18:03

:함수는 코딩하는 사람에게 효율성, 편의성을 가져다주기 위해 사용한다 

자바 스크립트에선 function, 함수명 () => java method, 파이선에서는 def으로 사용한다

 

<특징>
매개변수라고 하는 데이터를 함수에 전달할 수 있다

호출될 때만 실행되는 코드블록이다.

결과로 데이터를 변환할 수 있으며 어떤 언어에서든 호출한다

파이선도 재귀함수(함수 스스로 자신을 호출)를 허용한다

 

 

def my_function():       #함수 함수명
    print("함수는 호출할때 실행")      #코드블럭
my_function()          #함수명을 그대로 다시 써주는 것을 호출이라고 한다

 

 

매개변수를 "파라미터"라고 하고,  매개변수 수를 "인수"라고 한다

 

함수의 관점에서 보면 매개변수는 함수정의에 괄호안에 나열된 변수 인수는 함수가 호출될때 함수에 전송되는 값이다

 

 

def print_coin(파라미터) :
    print("파라미터 입니다")

print_coin()

 

 

정보는 함수에 인수로 전달되고 인수는 함수의 괄호안에 지정됩니다 원하는 만큼 인수를 추가할 수 있고 쉼표로 구분한다

 

매개변수와 인수는 (수량이) 동일해야 한다

 

 

def my_name(fname, lname):      #함수명(매개변수)
    print(fname + " 입니다" + lname)

 

#인수를 함수명에 넣어서 사용
my_name("김씨 ","2")          #함수명(인수)
my_name("이씨 ","2")
my_name("박씨 ","2")

print_sum()

 

 

 

return

 

값을 함수에서 값을 반환할 때 사용되는 키워드

함수 내에서 계산된 값을 호출자에게 반환하거나 함수를 중단하고 호출자로 돌아가게 한다

def convert_int (str_number) :
    return int(str_number.replace(',', ''))

convert_int("1,234,567")

=> 결과 1234567

 

 

 

활용하기

 

1) *args 임의의 인수 => 함수에 전달될 인수의 수를 모를경우 *로 처리한다


def my_child(*kids):
    print("우리 아이들 " + kids[0], kids[1], kids[2] + " 밥 먹음?")
my_child("채현","리안","바론")

 


2) 키워드 인수 key = value 을 사용해서 인수를 보낼수도 있다

def third(child3, child2, child1):
    print("셋째는 " +child3)

third(child1 = "co",child2 = "co",child3 = "ba")

 


3) 기본 매개변수 값 매개변수에 = 값을 넣어 사용할 수도 있다
def Con(country = "Korea"):
    print("i am from " + country)

Con("Sweden")
Con("India")
Con() #인수를 쓰지 않은 곳에 기본이 출력
Con("Brazill")

 

 

 

별점 시스템을 만들려고 한다. 따라서 별점에 대한 데이터가 필요하다.

별점은 1,2,3 즉 3개로 만들것이다.

포인트가 95점 이상이면 3점, 85점 이상이면 2점, 나머지는 1점으로 할 것이다.

리뷰데이터를 통해 각 데이터의 별점을 구하시오.

 

def 함수이름지정(points) :            # def를 먼저 정의하고,
    if points >= 95:
        return '★★★'
    elif points >= 85:
        return '★★'
    else :
        return '★'

 

df['별점'] = df['points'].apply함수이름지정 )   # 함수를 적용할 때는 .apply() 를 사용한다

 

df = df.sort_values('별점',ascending=False)

 

 

# 내림차순 정렬하고 싶을 때에는 .sort(ascending=False)

# 정렬은 기본적으로 오름차순 . sort(ascending=True) 으로 지정되어있으므로sort()를 이용하면 된다 

# ASC = 오름차순

 

 

 

 

재귀함수

재귀함수 아래에 예제에서 tri_recursion은 자신을 호출 ("recurse")하도록 정의된 함수입니다 k변수를 데이터로 사용하여 재귀(스스로 호출)할때마다 (-1)감소되게 만든다 
최종적으로 조건이 0보다 크지 않으면 (즉, 0일때) 스스로의 호출이 종료된다
이는 데이터를 반복하여 결과에 도달할 수 있다는 이점이 있다 

def rec(k):
    if (k > 0):
        result = k + rec(k-1)
        print(result)
    else:
        result = 0
    return result
print("\n\n재귀 함수 결과")
rec(6)

 

1
2+1
3+2+1
4+3+2+1
5+4+3+2+1
6+5+4+3+2+1

 

--------------------------------------------------------------------------------------------------------------

연습하기

평균 구하기

def print_score(score_list) :
    print(sum(score_list)/len(score_list))
    
print_score ([1, 2, 3])

 

 

함수 내 반복문 사용하여 비트코인 100번 출력하기

def print_coins():
    for i in range (100) :
        print("비트코인")
print_coins()

 

 

두 개의 값을 입력받아 더하기

a = input("첫번째 수를 입력하세요: ")
b = input("두번째 수를 입력하세요: ")

def print_sum() :
    print(int(a)+int(b))

print_sum()

 

 

함수 내 조건문으로 짝수출력하기

def print_even(even_list) :
    for v in even_list :
        if v % 2 == 0 :
            print(v)
    
print_even ([1, 3, 2, 10, 12, 11, 15])

 => 결과 

2
10
12