ABOUT ME

Today
Yesterday
Total
  • [Python] Part.3 함수 및 변수
    Python 2023. 2. 7. 17:16

     

     

     

    Ch03-01. 함수

     

    함수란? 입력값을 받아서 출력값을 내어놓는 것. 

    수학에서는 f(x) = y로 표현.

    ex) y = 3x + 4

     

     

    Python으로 함수 작성 하는법

    def 함수이름(x1, x2, x3):
    	문장1
    	문장2
    	return y
        
    ex)
    def hello():
    	print(“hello”)
    
    def addition(a, b):
    	return a+b
    
    def add_and_multiple(a,b):
    	return a+b, a*b
    def function(x):
      y = 3*x+4
      return y
    _
    function(1)
    
    7	#결과
    _
    result = function(2)
    print(result)
    
    10	#결과
    def hello():
      print('hello')
      
    _
    hello()
    
    hello	#결과
    def add_and_multiplicattion(x, y):
      return x+y, x*y
    
    _
    a = add_and_multiplicattion(3, 4)
    _
    a, b = add_and_multiplicattion(3, 4)
    _
    print(a)
    print(b)
    
    #출력
    7
    12

     

     


     

    Ch03-02. 매개변수와 글로벌 변수

     

    매개변수란?

    def addition(a, b):
    	return a+b
        
    위와 같은 예제에서 a, b와 같이 입력값들을 매개변수라 부른다.

     

    매개변수의 기본값을 지정해 놓으면?

    def addition(a = 1, b = 3):
    	return a+b
    
    위와 같은 상황에서 addition(3)을 입력하면?
    ⇒ 3 + 3 = 6이 나온다.
    
    addition(b=1)을 입력하면?
    ⇒ 1 + 1 = 2가 나온다.
    
    * 주의 addition(a=3, 2)와 같은 표현은 불가능하다.

     

    ① 입력값이 몇 개가 될 지 모를 때는?

    def 함수(*매개변수):
    	수행할 문장
    
    예시)
    def func(*args):
    	for i in args:
    		print(i)
    
    => args에 들어간 인수들이 tuple 형태로 변환되어 args라는 매개변수에 들어간다.

     

    ② 입력값이 몇 개가 될 지 모를 때는? 

    def 함수(**매개변수):
    	수행할 문장
    
    예시)
    def printer(**args):
    	return args
        
    ⇒ **args에 들어간 인수들이 dictionary 형태로 변환되어 **args라는 매개변수에 들어간다.
    ⇒ **변수이름 형태의 경우 반드시 ex)def func(a=1, b=2)와 같은 형태로 매개변수 이름을 지정해야 한다.

     

    매개변수에 전달되는 값은?

    def test():
    	a=2
    	print(a)
    _
    a = 3
    test()
    print(a)
    
    2
    3

     

    Local 변수와 global 변수

    • local 변수 : 함수 안에서 만든 변수는 함수 안에서만 살아있다가 함수 코드가 실행 종료되면 변수도 같이 사라짐.
    • global 변수 : 반대로 함수 외부에서 만든 변수는 프로그램이 실행되어 있는 동안에 계속 살아있음.

     

    함수 내부에서 global 변수를 부르려면

    a= 3 
    def f(): 
    	global a 
        	a += 1 
        	print(a)
    _
    f() 
    4
    _
    print(a)
    4
    
    또는
    
    def f():
    	global a 
        	a = 1
        	a += 1 
    _
    f()
    2

     

     

     


     

    Ch03-03. 함수 작성 실습

     

    generator와 yield

    def gen(n):
    	while n > 0 :
    		yield n
    		n = n - 1
    
    yield를 통해 생성된 값들은 바로 계산되지 않고 호출 되었을 때 비로소 계산됨. (lazy operation)
    _
    for i in gen(5):
      print(i)
     
    50
    40
    30
    20
    10
    def abs(num):
      #return만나면 함수가 종료됨
      if num > 0:
        result = num
      else:
        result = num * -1
      return result
    
    print(abs(-7))
    print(abs(12))
    
    7
    12
    # 두 수를 받아서 사칙연산결과를 출력
    def cal(num1, num2):
      print("{} + {} = {}".format(num1, num2, num1 + num2))
      print("{} - {} = {}".format(num1, num2, num1 - num2))
      print("{} * {} = {}".format(num1, num2, num1 * num2))
      print("{} / {} = {}".format(num1, num2, num1 / num2))
    
    cal(12, 3)
    
    12 + 3 = 15
    12 - 3 = 9
    12 * 3 = 36
    12 / 3 = 4.0
    def hello():
      print('안녕')
      print('만나서 반가워')
    
    # 함수호출
    hello()
    hello()
    
    안녕
    만나서 반가워
    안녕
    만나서 반가워

     

     

     

     

    'Python' 카테고리의 다른 글

    [Python] Part.6 상속과 예외처리  (0) 2023.02.15
    [Python] Part.5 클래스  (0) 2023.02.07
    [Python] Part.4 함수 심화학습  (0) 2023.02.07
    [Python] Part.2 제어문  (2) 2023.02.06
    [Python] Part.1 Python의 자료형  (0) 2023.02.04
Designed by Tistory.