KT AIVLE SCHOOL 복습

KT AIVLE DX #1 - 데이터 다루기(6) 함수

전쏘스 2023. 2. 27. 13:26

 

  • 함수는 입력을 받아 무엇인가를 처리하거나 어떤 결과를 반환하는 것
    • 함수는 def 문으로 정의
    • 함수는 기본적으로 세 가지로 구성 1) 입력 : 입력 매개변수, 생략가능 2) 처리 : 코드들 3) 출력 : 처리 결과, 생략 가능

    1. 입력

    def hello():
        print('오우')
    
    a = hello()
    
    print(a)
    
    # return 값이 없어서 print를 하게 되면 None 값이 나온다 

    1) 입력 매개변수

    def hello(name):
        print(f'{name}님 안녕하세요? 반갑습니다!') 
    
    hello('파이썬')  # 파이썬님 안녕하세요? 반갑습니다!
    def hello():
        name = input('이름은? \n')  # 입력
        print(f'{name}님 안녕하세요? 반갑습니다!') 
    
    # 함수 사용
    hello()

    a. 입력 매개변수 기본값

    • 위 함수는 입력 매개변수가 없으면 오류가 발생
    • 이를 막기 위해 매개변수 = 값 형태로 기본 값 지정 가능
    def hello(name='여러분'):
        print(f'{name}님 안녕하세요? 반갑습니다!') 
    
    # 함수 사용
    hello('홍길동')   # 홍길동님 안녕하세요? 반갑습니다!
    hello()           # 여러분님 안녕하세요? 반갑습니다!

    b. 임의의 여러 매개변수

    • 일반적으로 임의의 여러 입력 매개변수가 전달된 경우는 함수 안에서 반복문을 사용해 처리해야 함
    • args를 사용하게 되면 여러개의 입력값을 튜플로 함수 값을 받아 처리하겠다는 의미 → 사용자가 몇 개의 입력을 할지 모를때 사용을 하게 되는 것
    def hello(*args):
        print(args)
    
        for who in args:
            print(f'{who}님 안녕하세요? 반갑습니다!')
    
    hello('홍길동', '일지매', '강우동')
    
    # 결과
    # ('홍길동', '일지매', '강우동')
    # 홍길동님 안녕하세요? 반갑습니다!
    # 일지매님 안녕하세요? 반갑습니다!
    # 강우동님 안녕하세요? 반갑습니다!

    c. 임의의 여러 매개변수와 고정 매개변수

    def hello(*args, title):
        for who in args:
            print(f'{who}{title} 안녕하세요? 반갑습니다!')
    
    # 함수 사용
    hello('홍길동', '일지매', '강우동', title='선생님')
    
    # 결과
    # 홍길동선생님 안녕하세요? 반갑습니다!
    # 일지매선생님 안녕하세요? 반갑습니다!
    # 강우동선생님 안녕하세요? 반갑습니다!

    2. 반환

    • 함수안에서 print() 함수로 결과를 출력하는 함수는 반환되는 값이 없음
    • 반환되는 값이 없는 함수의 결과값을 받아 출력하면 None이 출력
    def calculate(a, b):
        summ = a + b
        mult = a * b
        return summ, mult               # 값은 튜플로 리턴된다
    
    r1, r2 = calculate(10, 5)
    print(r1)                           # 15
    print(r2)                           # 20

    3. 내장 함수

    • abc(x) : x의 절대값을 반환
    • all(x) : x의 요소 모두가 참이면 True를 반환
    • any(x) : x의 요소 중 하나라도 참이면 True 반환
    • chr(x) : 아스키 코드값 x에 대응하는 문자 반환
    • dir(x) : x가 가지고 있는 변수나 메소드 목록을 반환
    • divmod(x, y) : x를 y로 나눈 몫과 나머지를 튜플형태로 반환
    • enumerate(x) : 리스트, 튜플 문자열을 받아 인덱스와 값을 반환
    • eval(x) : 실행 가능한 문자열 x를 받아 문자열을 실행한 결과 반환
    eval('10 + 20')         # 결과 30
    eval('print("ABC")')    # 결과 ABC
    • filter(f, x) : 함수 f에 x를 매개변수로 전달해 True인 경우만 반환
    • id(x) : x의 고유 주소값을 반환
    • input() : 사용자로부터 입력을 받음
    • int(x) : x를 정수로 변환
    • isinstance(x, y) : x가 y의 인스턴스인지 여부를 True, False로 반환
    • map(f, x) : 함수 f에 x요소를 하나씩 전달해 얻은 결과를 반환
    • ord(x) : 문자 x의 아스키 코드값을 반환
    • pow(x,y) : x를 y번 제곱한 결과를 반환
    • sorted(x) : x요소를 정렬하여 반환
    • zip(x, y): x와 y 요소를 쌍으로 묶어서 반환