[파이썬 중급] 함수

Jasmine·2023년 6월 18일
0

파이썬 중급

목록 보기
8/12

함수 선언, 호출

  • 선언: def 함수명(매개변수):
  • 호출: 함수명(인수)
  • 매개변수와 인수 개수는 일치해야 함
  • 매개변수 개수가 정해지지 않은 경우 * 를 이용
    (튜플 타입으로 저장된다)
  • 실행문 생략 : pass
  • 함수 내에서 또 다른 함수 호출 가능

return 키워드

  • 함수 실행결과를 반환

  • 함수가 return을 만나면 실행을 종료한다.
    이후의 구문은 실행X (오류는 안나지만, 의미없는 문장이 된다)

전역변수, 지역변수, global

전역변수

  • 함수 밖에 선언된 변수로 어디에서나 사용은 가능하지만, 함수 안에서 수정할 수는 없다. (초기화되지 않음)

지역변수

  • 함수 안에서 선언된 변수로 안에서만 사용 가능하다.

global 키워드

  • global을 사용하면 함수 안에서도 전역변수의 값을 수정할 수 있다.

중첩함수

  • 함수 안에 함수 중첩
  • 내부 함수를 함수 밖에서 호출할 수 없다.

📋실습

def calculator(n1, n2, operator):
    
    def addCal():
        print(f'덧셈 연산: {round(n1 + n2, 2)}')
    
    def subCal():
        print(f'뺄셈 연산: {round(n1 - n2, 2)}')
        
    def mulCal():
        print(f'곱셈 연산: {round(n1 * n2, 2)}')
        
    def divCal():
        print(f'나눗셈 연산: {round(n1 / n2, 2)}')
    
    if operator == 1:
        addCal()
    elif operator == 2:
        subCal()
    elif operator == 3:
        mulCal()
    elif operator ==4:
        divCal()


while True:
    n1 = float(input('실수 n1 입력: '))
    n2 = float(input('실수 n2 입력: '))
    operator = int(input('1 덧셈, 2 뺄셈, 3 곱셈, 4 나눗셈, 5 종료: '))
    
    if operator ==5:
        print('종료')
        break
    
    calculator(n1, n2, operator)

lambda 함수

  • lambda 키워드를 이용하면 함수 선언을 간단하게 할 수 있다

    : 함수가 간단해서 lambda로 충분히 표현이 가능하다면,
    활용해서 선언해서 코딩하는 것이 편리하고 간결하다.

문제풀이

  • 재귀함수
def formatedNumber(n):
    return format(n, ',')


def recursionFun(n):

    if n == 1:
        return n
    return n * recursionFun(n - 1)

inputNumber = int(input('input number: '))
inputNumberFormated = formatedNumber(recursionFun(inputNumber))
print(inputNumberFormated)

# 내 코드
def mat01(a1, k, n):
    a = a1
    sum = a1
    
    for i in range(1, n+1):
        print(f'{i}번째 항의 값: {a}')
        print(f'{i}번째 항까지의 합: {sum}')
        a += k
        sum += a
# 제공 코드
def sequenceCal(n1, d, n):

    valueN = 0
    sumN = 0
    i = 1
    
    while i <= n:

        if i == 1:
            valueN = n1
            sumN += valueN
            print('{}번째 항의 값: {}'.format(i, valueN))
            print('{}번째 항까지의 합: {}'.format(i, sumN))
            i += 1
            continue

        valueN += d
        sumN += valueN
        print('{}번째 항의 값: {}'.format(i, valueN))
        print('{}번째 항까지의 합: {}'.format(i, sumN))
        i += 1
        
inputN1 = int(input('a1 입력: '))
inputD = int(input('공차 입력: '))
inputN = int(input('n 입력: '))
  • round(변수, 자릿수) : 반올림
round(n1, 2) 
: 반올림해서 둘째자리까지 표시.
profile
데이터직무를 위한 공부 기록

0개의 댓글