ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 함수 사용
    Python 2023. 10. 16. 12:33

    함수는 def에 함수 이름을 지정하고 ()(괄호)와 :(콜론)을 붙인 뒤 다음 줄에 원하는 코드를 작성

    > 반드시 들여쓰기

    def는 정의하다의 define

     

    함수 작성 및 호출
    def hello():
        print('Hello, world!')
    
    hello()

     

    함수 결과 반환
    def add(a, b):
        """이 함수는..."""
        return a + b
    x = add(10, 20)
    print(x)
    
    print(add.__doc__)

    add 함수에 "(큰따옴표) 세 개로 독스트링(설명) 추가

    > 함수를 호출해도 독스트링은 출력되지 않음

    함수의 __doc__으로 독스트링 출력

    def add(a, b):
        result = a + b
        return result
    
    x = add(10, 20)
    print(x)
    
    # 출력 값 30
    def add():
        return 'hello'
    
    x = add()
    print(x)
    
    # 출력 값 hello

     

     

    >>> def not_ten(a):
    ...     if a == 10:
    ...         return    # 변수 a 값이 10이면 반환(빈값)
    ...     print(a, '입니다.', sep='')
    ...
    >>> not_ten(5)
    5입니다.
    >>> not_ten(10)
    >>>

    return으로 함수 중간에서 빠져나오기

     

    함수에서 값을 여러 개 반환
    def add_sub(a, b):
        return a + b, a - b
    
    x, y = add_sub(10, 20)
    print(x)
    print(y)
    
    z = add_sub(100, 200)
    print(z)
    
    # 출력 값
    30
    -10
    
    (300, -100)

    return으로 값을 여러 개 반환하면 튜플이 반환됨

    결과를 변수 한 개에 저장해 출력해 보면 튜플이 반환

     

    함수에서 값 여러 개 직접 반환

    def one_two():
        return 10, 20
    
    x, y = one_two()
    print(x, y)
    
    #  출력 값
    10 20
    
    def one_two():
        return (1, 2)
    
    x, y = one_two()
    print(x, y)
    
    # 출력 값
    1 2

    여러 개를 직접 반환할 때는 return에 튜플을 지정

    괄호 없이 콤마로 구분하면 튜플이 되므로 튜플 1, 2는 튜플 (1, 2)와 같다

    return 1, 2도 return (1, 2)와 같음

    리스트도 직접 반환해도 됨 / 여러 개 저장 가능

     

    함수의 호출 과정
    def mul(a, b):
        c = a * b
        return c
    
    def add(a, b):
        c = a + b
        print(c)
        d = mul(a, b)
        print(d)
    
    x = 10
    y = 20
    add(x, y)
    
    # 출력 값
    30
    200

     

    연습 문제 예제
     29.7번 연습 문제: 몫과 나머지를 구하는 함수 만들기
    
    x = 10
    y = 3
    
    def get_quotient_remainder(a, b):
        return a // b, a % b
    quotient, remainder = get_quotient_remainder(x, y)
    print( '몫: {0}, 나머지: {1}'.format(quotient, remainder) )
    
    # 실행 결과
    몫: 3, 나머지: 1
    
    # 29.8번 심사 문제: 사칙 연산 함수 만들기
    # 표준 입력으로 숫자 두 개가 입력됩니다. 다음 소스 코드를 완성하여 두 숫자의 덧셈, 뺄셈, 곱셈, 나눗셈의 결과가 출력되게 만드세요.
    # 이때 나눗셈의 결과는 실수라야 합니다.
    
    x, y = map( int, input().split() )
    
    def clac(x, y):
        return x + y, x - y, x * y, x / y
    a, s, m, d = clac(x, y)
    print( '덧셈: {0}, 뺄셈: {1}, 곱셈: {2}, 나눗셈: {3}'.format(a, s, m, d) )
    
    # 표준 입력
    10 20
    # 실행 결과
    덧셈: 30, 뺄셈: -10, 곱셈: 200, 나눗셈: 0.5
    
    # 표준 입력
    40 8
    # 실행 결과
    덧셈: 48, 뺄셈: 32, 곱셈: 320, 나눗셈: 5.0

     

    연습 문제 예제 2
    # 다음과 같이 표현되도록 코드를 작성하시오.
    
    # 덧셈 1, 뺄셈 2, 곱셈 3, 나눗셈 4: 1
    # 첫 번째 값을 입력: 10
    # 두 번째 값을 입력: 20
    
    # ----------------------
    # 입력 값: 10, 20
    # 결과 값: 10 + 20 = 30
    # ----------------------
    
    choice = int(input('덧셈 1, 뺄셈 2, 곱셈 3, 나눗셈 4: '))
    x = int(input('첫 번째 값을 입력: '))
    y = int(input('두 번째 값을 입력: '))
    print()
    print('----------------------')
    def clac(x, y):
        print('입력 값:', x, ',', y)
        if choice == 1:
            result = x + y
            return print('결과 값: {0} + {1} = {2}'.format(x, y, x + y))
        elif choice == 2:
            result = x - y
            return print('결과 값: {0} - {1} = {2}'.format(x, y, x - y))
        elif choice == 3:
            result = x * y
            return print('결과 값: {0} x {1} = {2}'.format(x, y, x * y))
        elif choice == 4:
            result = x / y
            return print('결과 값: {0} ÷ {1} = {2}'.format(x, y, x / y))
        else:
            pass
        return result
    clac(x, y)
    print('----------------------')
    
    # 실행 결과
    
    덧셈 1, 뺄셈 2, 곱셈 3, 나눗셈 4: 1
    첫 번째 값을 입력: 10
    두 번째 값을 입력: 20
    
    ----------------------
    입력 값: 10 , 20
    결과 값: 10 + 20 = 30
    ----------------------

    'Python' 카테고리의 다른 글

    재귀호출  (0) 2023.10.17
    위치 인수와 키워드 인수 사용  (0) 2023.10.16
    회문 판별과 N-gram 만들기  (0) 2023.10.11
    file  (0) 2023.10.11
    set  (0) 2023.10.11
Designed by Tistory.