본문 바로가기

Python

데코레이터 (Decorator) 1. 데코레이터 데코레이터는 파이썬에서 강력하고 유용한 툴입니다. 데코레이터를 사용해서 함수를 감싸줌으로써 , 함수를 영구적으로 수정하지 않고 함수의 행위를 확장할 수있게 됩니다. 예를 들어 아래의 코드를 보면서 설명하면 #데코레이터 1 def print_hello(): # Line 1 print("Hello World !") def add_print_to(original): def wrapper(): print("func start") foobar() print("func end") return wrapper add_print_to(print_hello) # Line13 Line13의 add_print_to 함수호출로 print_hello 파라미터가 def add_print_to 함수의 파라미터로 들어.. 더보기
중첩함수(nested function)와 클로저 1. 중첩함수 일급함수(first-class) 란? 프로그래밍 언어가 함수를 '일급객체' 취급하는 것을 말합니다. python에서는 모든 것이 객체이므로, python의 함수는 First-class함수로 사용이 가능합니다. 함수형 프로그래밍에서 고안된 기법입니다. python, GO, javascript, kotlin은 이를 지원합니다.(C , JAVA 등은 미지원) 일급객체 라고하면 변수나 데이타에 할당 할 수 있어야 합니다. 객체의 인자로 넘길 수 있어야 합니다. 객체의 리턴값으로 리턴 할수 있어야 합니다. 즉 , 중첨함수란 단어그대로 함수 안에 또 다른 함수가 선언되어 있는 것 입니다. 중첩 함수는 해당 함수가 정의된 함수 내에서 호출 및 리턴이 가능합니다. 함수 안에 선언된 변수(로컬 변수)는 함.. 더보기
지역변수와 전역변수 1.지역변수(Local Variable) 지역변수란 쉽게 설명해서 특정함수안에서만 사용가능한 변수를 말하는데 즉, 함수를 벗어난 위치에서 선언이 되면 사용이 불가능한 함수를 말합니다. 코드를 첨부해 예시로 들어보면 다음과 같습니다. 1. 위의 line1, '옷장안의 의류 수'라는 뜻을가진 숫자10을 closet라는 변수에 저장시킵니다. 2. 외출이라는 이름의 메소드를 가진 함수를 작성합니다. 3. 지역변수를 사용할 변수 closet를 설정해주고 line5에서 또 한번 변수 - 파라미터 를 다시 저장시켜줍니다. 4. 지역변수(line3~line7)내에 연산을 출력해줄 코드(남은 옷)를 작성합니다. 5. 함수를 호출해주고 위 아래에 전역변수의 남은 옷을 출력해줍니다. 6.함수를 호출하면 전체 옷 : 10 [.. 더보기
이중 FOR문에 관하여 1. 이중 for문 활용법 보통 이중 for문 이라고 하지만 2개이상의 for문을 사용가능하기때문에 중첩반복문, 다중반복문이라고도 부릅니다. 1-1) for문 속의 for문 ex) for i in range(4): for j in range(1, 4): print(j, end=" ") print() => 결과값 0 1 2 3 0 1 2 3 0 1 2 3 간단히 설명을 하자면 3까지의 반복문(i)을 3번(j) 반복한다는 것입니다. 1-2)별찍기 * for i in range(1,6): for j in range(1, i+1): print('*', end="") print() i==1 별의 갯수 i+1은 반복횟수 더보기
Python SET 1.set란.. 수학에서 얘기하는 집합이랑 비슷합니다. set1 = {1,2,3,4,5} 2.set의 활용 딕셔너리랑 비슷하지만 키가 없고 값만 존재합니다. list나 dict의 경우 대괄호나 중괄호로 선언할 수 있었지만, set은 dict타입과 동일한 중괄호를 사용하므로, 중괄호만으로는 생성할 수 없습니다. s = {} type(s) s = set() type(s) s set() s = set([1,2,3,4]) s {1, 2, 3, 4} p = {1, 2, 3, 4} p {1, 2, 3, 4} set는 값이 중복이 될수 없습니다. set = {1,1,1,2,3,4}s{1,2,3,4} set는 순서가 없고 어떤 값이 먼저 나올지 모릅니다. for i in {1, 2, 3, 4, 15}: ex) prin.. 더보기
딕셔너리 (dict) 1.딕셔너리가 무엇인가? 딕셔너리는 키와 값으로 되어있습니다. 사람이 되었든 동물이 되었든 무엇이든지 그에 맞는 대응 관계를 만들고싶으면 딕셔너리가 적합한 것이라고 말할수있습니다. 예를 들어 사람은 생각을 하고 살고 동물은 음식을 먹어야산다는 문장에서 대응 되는 포인트를 뽑자면 사람:생각 , 동물:음식 이런식으로 매칭을 시킬수있습니다. 그래서 결론은?? 딕셔너리 기본형태는 중괄호, {key:value} 앞은 key와 뒤에는 value 로 이루어져있습니다. 앞에 말했던 사람은 생각 동물은 음식으로 딕셔너리를 만들어보면 {사람:생각} , {동물:음식} 2.딕셔너리 활용방법 1) 딕셔너리 쌍 추가하기 b={2:'c'} 여기서 b[3]='d' 를 추가하면 b={2:'c', 3:'d'} 이런식으로 쌍이 추가가됩니.. 더보기
리스트의 사용방법 1.리스트형태 리스트 형태 list = [] list_a = [1,2,3,4,5] 2.리스트 인덱싱 먼저 list_a라는 변수에 [1,2,3,4,5]을 저장. list_a= [1,2,3,4,5] list_a[0] =1 , list_a[3]=4 , list_a[-1]=5 3.리스트수정과 삭제 list_a = [4,5,6,7] del list_a[2] list_a = [4,5,7] 4.리스트요소추가(append) list_a= [4,5,6,7] list_a.append(8) list_a = [4,5,6,7,8] 5.리스트정렬(sort) list_a= [5,3,6,7] list_a.sort() list_a= [3,5,6,7] 6.리스트뒤집기(reverse) list_a= [4,5,6,7] list_a.reve.. 더보기
리스트 컴프리헨션 (List Comprehension) 1.컴프리헨션이란..? 사전적으로는 이해, 이해력, 포용, 포용력, 포함, 압축 등의 뜻을 가지고 있습니다. 그래서 저희가 알아볼 리스트+컴프리헨션은 직관적으로 리스트를 생성하는 방법입니다. 대괄호 "[", "]"로 감싸고 내부에 for문과 if 문을 사용하여 반복하며 조건에 만족하는 것만 리스트로 생성할 수 있습니다. 2.사용법 for i in range(10) (들여쓰기)i*2 이런식이 있다고 가정할때 i*2가 for문 앞에 가는 형식입니다 . 이렇게 i*2 for i in range(10) 간편하게 한줄로 처리하는것이 리스트컴프리헨션입니다. 이번엔 좀더 복잡한식을 예시로 들겠습니다. a=['1','2','3','4','5']라는 리스트가있고 b=['a','b','c','d','e']라는 리스트가있.. 더보기