코딩헤딩

python 알고리즘 기초1 (유니코드, 클로저함수 기초) 본문

python

python 알고리즘 기초1 (유니코드, 클로저함수 기초)

멈머이 2023. 11. 14. 22:39
728x90

1. 유니코드

 

*문자열을 UTF-8로 인코딩하기

text = "안녕하세요"
encode_text = text.encode("utf-8")
encode_text

결과 : b'\xec\x95\x88\xeb\x85\x95\xed\x95\x98\xec\x84\xb8\xec\x9a\x94'

 

*문자열을 UTF-8로 디코딩하기

decode_text = encode_text.decode("utf-8")
decode_text

결과 : '안녕하세요'

 

 

2. 클로저

### 클로저 함수 정의하기
def outer_function(x):
    # 내부 함수 정의 : 실제 실행되는 함수
    def inner_function(y):
        s = x+y
        return s
    return inner_function
    
### 클로저 함수 호출하기
closure_exe = outer_function(10)
print(closure_exe)

### 내부 함수 호출하기
resutl1 = closure_exe(5)
print(resutl1)

결과 : 15

 

중간중간 값과 주소를 찍어가며 확인해 보면

### 클로저 함수 정의하기
def outer_function(x):
    print(f"#1 : x = {x}")
    # 내부 함수 정의 : 실제 실행되는 함수
    def inner_function(y):
        print(f"#2 : y = {y}")
        s = x+y
        print(f"#3 : s = {s}")
        return s
    print("#4----------")    
    return inner_function
### 클로저 함수 호출하기
closure_exe = outer_function(10)
print(closure_exe)

결과 : #1 : x = 10
          #4----------
          <function outer_function.<locals>.inner_function at 0x000002D34F715B20>

closure_exe는 inner_funnction자체를 리턴 받으며 주소값을 가진다.

### 내부 함수 호출하기
resutl1 = closure_exe(5)
print(resutl1)

결과 : #2 : y = 5
          #3 : s = 15
          15

 

728x90