별의별 이야기

내장함수, math module, 사용자 정의 함수 본문

3./Python

내장함수, math module, 사용자 정의 함수

Hailey Han 2024. 12. 30. 11:53
728x90

1. 내장함수

왜 함수를 사용하는가?
1. 반복되는 구문을 모듈화
2. 수정이 간편
3. 운영과 관리가 용이
4. 가독성이 높아짐

2. 내장함수 - Math module
-
파이썬에는 친숙한 수학적 함수들을 제공하는 math module이 있다
- module은 관련된 함수들의 모음이다.
- module을 사용하려면 import 사용해야 한다. 

3. 사용자 정의 함수 개요

함수를 만드는 방법 배우기
사용자 정의 함수란? 사용자가 필요하다고 판단하는 루틴을 구상하여 함수로 정의하고 사용하는 것
함수 정의하기(define function) and 선언된 함수 사용하기(function call)

기본적인 키워드는 def + 내가 만들 함수의 이름 + (parameter1, parameter2) + 콜론 
parameter는 변수다. 결과는 return 
- 함수에 해당하는 statement는 들여쓰기로 구분
- 함수를 호출해야 정의되어 있는 함수가 실행이 됨
-
사용자 정의 함수에는 4가지 형태가 존재
앞에서 배운건 함수를 호출하는 argument이다. 예를들어 int(35.6)에서 35.6은 argument이다. 함수를 호출 할 때 전달해주는 데이터를 의미함. 

def plus(num1,num2): #함수명 + 2개의 parameters 
    result = num1 + num2   #statement
    return result	#한 개의 값을 돌려주는 return

3-1. 사용자 정의 함수 형태 

대표적으로 int는 parameter and return 모두 (O) 
parameter가 없이 return만 필요한 것은,, 아직 안배움
parameter는 없는데 return이 없는 경우는 대표적으로 print(return이 없으면 컴퓨터 모니터 화면으로 전달(사용자로 오지 않음))
함수 이름만 있는 경우 : 예를들어 화면에 줄 그어 출력해주는 경우

3-2. 사용자 정의 함수 정의 과정 

1단계. 함수의 기능을 정리하고, 이름을 정한다
2단계. 함수에서 입력과 결과가 무엇인지 정한다
3단계. 입력으로 사용하는 파라미터와 리턴값의 데이터형을 정한다
4단계. 원하는 함수의 기능을 pseudocode로 쓴다 (간략하게 적어주기) 
5단계. 함수를 만든다
6단계. 제대로 실행되는지 테스트 한다 

3-3. 예제1
1. 평균을 계산해주는 함수 -> 이름은 Calaulate_avg 
2. 값을 받을 기능을 생각해보자. 3개의 숫자를 입력 받으니까.. parameters 3개 정의 => num1, num2, num3 
3. 제일 중요한 def 키워드 
=> def calculate_avg (num1, num2, num3): 

코드를 적었는데 평균에 소수점이 없어야겠어-> 그 경우 결과를 그냥 int로만 바꾸면 되니 코드 수정이 간편하다.
#사용자 정의 함수 예제1
def calculate_avg (num1, num2, num3):
    result = num1+num2+num3  #더한 값을 result에 저장
    
    #return 방법1
    return(result/3.0)  #avg를 위해 3으로 나눔 => 근데 소수점이 있으면 좋으니까 3.0 으로 나누기 => 리턴하기
    #resuturn 뒤에 수식이 와도 된다! 

    #return 방법 2
    avg = result/3.0 
    return avg 

#사용하려면 호출이 필요함
print( calculate_avg(4,7,8)) #함수 호출 및 arguments 호출 -> 동작 화면에 넣기(print)


#또는 변수에 저장에서 나타내도 무방하다.
avg=calculate_avg(3,6,9)
print(avg)

3-4. 예제2
2개 숫자를 입력 받아서, 각각 10을 곱한 숫자를 더한 값을 계산하여 돌려준다.

#예제2
# 2개 숫자를 입력 받아서, 각각 10을 곱한 숫자를 더한 값을 계산하여 돌려준다.
def calculrate_sum (num1, num2):
    result = (num1*10)+(num2*10) 
    return(result)
print(calculrate_sum(4,5))
#같이풀기
def multiple (num1, num2): 
    return num1*10 + num2*10 #따로 변수에 저장해도 되지만, 수식으로 한번에 만들 수 있다.

3-5. 연습문제1

#연습문제1
#세개의 숫자를 파라미터로 받아서 곱한 값을 계산하여 출력하는 함수 nul(n1,n2,n3)정의 및 함수 2번 실행
def nul (n1,n2,n3):
    return (n1*n2*n3)
print(nul(1,2,3))
print(nul(4,5,6)) 
#같이풀기
def mul(value1, value2, value3):
    result = value1*value2*value3 #곱한 값 result에 저장하기
    print(result) #출력하는 함수 만들기

mul(3,4,5)
mul(1,4,5)

4. 사용자 정의 함수 예제

#1. no parameter, no return value 2
def print_script() :
    print("Blessed are the poor in spirit,") 
    print("for theirs is the kingdom of heaven.") 
    print(" ")
print("result of first function call, ") 
print("=" * 25)
print_script() # first function call

def repeat_script() :
    print_script() 
    print_script()
print("result of second function call, ") 
print("=" * 25)
repeat_script() # second function call  

#2. parameters, no return value 1
def print_chr(times) :
    for i in range(times) : 
        print("*")
print("result of first function call, ") 
print("=" * 25)
print_chr(5)

def print_line(t) :
    print("*" * t)

print("result of second function call, ") 
print("=" * 25)
print_line(10)
print_line(5)

#3. parameters, no return value 2
def repeat(num1,num2):
    sum = num1+num2 
    print("#"*sum)
    print("Sum of numbers is",sum) 
    print("#"*sum)
repeat(7,10) 
repeat(5,6) 
repeat(1,3)

#4. parameters, return value 1
def plus(num1, num2) :
    return num1 + num2
result_plus = plus(2, 12)
print("result of plus(2, 12) ") 
print(result_plus)

def mul(num1, num2) :
    return num1 * num2

result_mul = mul(2, 12) #return이 있기에 변수로 받아도 되고, print안에 argument로 넣어도 됨. 
print("result of mul(2, 12) ")
print(result_mul)

#5. parameters, return value 2
def calcul_age(year): #나이 계산 함수 
    age = 2023-year+1  #출생연도 입력하면 
    return age #나이 계산해서 되돌려줌 
year = int(input("Enter the year:")) #year 변수에서 나이를 받아줌. 예)1999 
print("age is",calcul_age(year))    #나이 출력

연습문제1

#연습문제1 
#두 수를 파라미터로 받아, 두 수를 서로 더한 값과 곱한 값을 더하여 리턴하는 함수. 파라메터는 3,5
def calculrate_mul (num1, num2) : 
    result = (num1+num2) + (num1*num2)
    return result 
print(calculrate_mul(3,5))
#같이풀기
def addmul(num1, num2): 
    return (num1+num2) + (num1*num2)
print (addmul(3,5))

연습문제2 (왜 안되지..)

#연습문제2
#2개의 수를 파라미터로 받아, 2개수 최대 공약수 찾기, 결과 출력 함수와 리턴함수 2개 작성
def print_gcd(num1, num2):
    result = math.gdc(num1,num2)
def return_gcd(result): 
print(print_gcd(3,5))

#같이풀기
import math 
def print_gcd(num1, num2):
    print(math.gcd(num1,num2))
def return_gcd(result): 
    return math.gcd(num1,num2)
print(print_gcd(6,18)) #실행을 위한 호출.
print(return_gcd(7,21))

연습문제 

#연습문제2
#8번 슬라이드 예제를 활용하여 회문이면 True, 회문이아니면 False를 리턴하는 함수 palin(str)을 만드시오
#문자열을입력받은후,그 문자열이회문인지아닌지 확인하는 함수 palin(str) 실행한 후 그 결과를 출력하시오
                                                                                                                                                                                                                                          
# 결과가 ture or false 
#같이풀기

def palin(str):
    reverseStr = palindrome(str)
    #answer = ''
    if str == reverseStr: 
    # for i in range(len(str)-1,-1,-1):
    #     answer += str[i]
    # ir answer == str: 
        return True
    else:
        return False
str

'3. > Python' 카테고리의 다른 글

return statement, module random  (1) 2024.12.31
List  (0) 2024.12.31
string methods  (0) 2024.12.24
for esle, sort, 다중 for, 문자열  (0) 2024.12.23
Day5 복습: for문  (2) 2024.12.23