05_파이썬 중급(1)

ryu·2023년 5월 9일

날짜 함수

datetime

  • today = datetime.datetime.today()
  • day = today.day

함수

  • 어떤 입력값에 대해서 특정한 기능을 수행하고 그 수행한 결과를 반환하는 것
  • 수학의 함수와 동일하다고 생각하면 됨

내장함수

  • 파이썬에서 기본으로 제공하는 함수

사용자함수

  • 사용자가 직접 선언하는 함수

함수를 사용하는 이유

  • 특정 기능을 재사용하기 위함

함수의 선언과 호출

함수 선언

  • def 키워드, 함수명, :, 들여쓰기를 이용하여 선언

    def addCal():
      n1 = int(input())
      n2 = int(input())
      print(f'n1 + n2 = {n1 + n2})

함수 호출

  • 함수명과 ()를 이용하여 호출

    def addCal():
      n1 = int(input())
      n2 = int(input())
      print(f'n1 + n2 = {n1 + n2})
            
    addCal() #함수 호출
  • 함수 내에서 또 다른 함수를 호출하는 것도 가능

    def fun1():
      print('fun1 호출!')
      fun2()
      
    def fun2():
      print('fun2 호출!')
      fun3()
     
    def fun3():
      print('fun3 호출!')
      
    fun1()  
  • pass 키워들르 사용하여 실행문을 생략할 수 있음


인수와 매개변수

  • 함수 호출 시 함수에 데이터를 전달할 수 있음

  • 매개변수는 함수에 입력으로 전달된 값을 받는 변수. 함수의 선언부와 호출부를 연결하는 변수라는 의미

  • 인수는 함수를 호출할 때 전달하는 입력값을 의미함

    def greet(customer):
      print(f'{customer} 고객님 안녕하세요.')
      
    greet('홍길동')

    여기서 customer가 매개변수이고 호출부의 홍길동이 인수

  • 매개변수는 2개 이상을 지정할 수도 있음. 이 때 인수와 매개변수 개수는 일치해야 함

  • 매개변수의 개수가 정해져있지 않을 때에는 *를 활용

    def calNums(*numbers):
      print(numbers)	#tuple 자료형으로 출력됨

데이터 반환

함수 실행 결과 반환

  • return 키워드를 활용하여 함수 실행 결과를 호출부로 반환함

  • 함수가 return을 만나면 실행을 종료함

    def divideNumber(n):
      if n%2 == 0:
        return '짝수'
      else:
        return '홀수'
      
    returnValue = divideNumber(5)

지역변수와 전역변수

전역변수

  • 함수 밖에 선언된 변수로 어디에서나 사용은 가능하나 함수 안에서 수정할 수는 없음

    num_out = 10
    
    def printNumbers():
      print(num_out)
      
    def printNumber2():
      num_out = 20
      print(num_out)
    
    printNumbers()	#	10
    printNumber2()	# 20

지역변수

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

    def printNumbers():
      num_in = 20
      print(num_in)
    
    printNumbers()	# 20
    print(num_in)	# NameError: name 'num_in' is not defined

global 키워드

  • 함수 안에서도 전역변수의 값을 수정할 수 있음

    num_out = 10
    def printNumbers():
      global num_out
      num_out = 20
      print(num_out)
      
    printNumbers()	# 20
    print(num_out)	# 20

중첩 함수

  • 함수 안에 또 다른 함수가 있는 형태

  • 내부 함수를 함수 밖에서 호출할 수 없음

    def out_function():
      print('out function')
      
      def in_function():
        print('in function')
      
      in_function()
      
    out_function()	# out function
    								# in function
      
    in_function()	# NameError: name 'in_function' is not defined

lambda 함수

  • 함수 선언을 보다 간단하게 할 수 있음

    # 1
    def calculator(n1, n2):
      return n1 + n2
    
    returnValue = calculator(10, 20)
    print(returnValue)	# 30
    
    # 2
    calculator = lambda n1, n2: n1 + n2
    returnValue = calculator(10, 20)
    print(returnValue)	# 30

모듈

모듈이란?

  • 모듈이란 이미 만들어진 훌륭한 기능으로, 사용자들이 쉽게 사용할 수 있는 것이 장점
  • 계산, 난수, 날짜, 시간 등등 수많은 모듈이 존재

모듈 구분

  • 내부 모듈: 파이썬 설치 시 기본적으로 사용할 수 있는 모듈
  • 외부 모듈: 별도 설치 후 사용할 수 있는 모듈
  • 사용자 모듈: 사용자가 직접 만든 모듈

모듈 만들기

  • 함수를 정의해 놓은 파이썬 파일의 이름을 import하여 사용 가능

  • 모듈명.함수명의 형태로 모듈에 정의된 함수를 사용할 수 있음

    import calculator
    
    n1 = 10
    n2 = 20
    
    addValue = calculator.addNumbers(n1, n2)
    print(addValue)	# 30

0개의 댓글