목록전체 글 (287)
프론트엔드 정복하기
스택 : LIFO 정책을 갖는다. 대표적인 스택의 활용 - 컴퓨터 내부의 프로세스 구조의 함수 동작 방식 push : 데이터 스택에 넣기 pop : 데이터 스택에서 꺼내기 재귀함수와 스택 아래는 운영체제 과목에서 깊게 설명해야 이해할 수 있는 부분이다. 프로세스 스택의 구조까지 이해할 필요는 없다. 다만, 함수 위에 함수가 호출되면 스택같은 구조로 함수가 쌓이고, 맨위 함수가 끝나면 그 다음( 그 아래) 함수가 불려진다는 프로세스만 이해하면 된다. # 재귀 함수 def recursive(data): if data < 0: print ("ended") else: print(data) recursive(data - 1) print("returned", data) recursive(4) 4 3 2 1 0 en..
def: 함수를 만들 때 사용하는 예약어 def 함수명(매개변수): ... 여러 가지 함수 # 일반적 함수 def test(a): return a # 입력값이 없는 함수 def test(): return 1 # 결과값이 없는 함수 def test(a): print(a) # 입력값, 결과값이 없는 함수 def test(): print(1) ** 매개변수를 지정해서 사용할 수 있다. (--> 순서와 관계없이 사용 가능) def add(a,b): return a, b result = add(a=2, b=4) # or result = add(b=1, a=3) ** 매개변수에 초기값 지정 def add(a,b=3): return a, b ** 입력값이 몇 개가 될지 모를 때 def add_many(*arg): f..
큐(queue)는 기본적으로 FIFO 정책을 갖는다. : First-in-First-out 파이썬에서 큐 라이브러리를 제공하는데 이를 쓸 수 있다. import queue data_queue = queue.Queue() data_queue.put('...') # 큐에 데이터 삽입 data_queue.qsize() # 큐에 있는 데이터 개수 산출 data_queue.get() # 큐에 가장 먼저 삽입된 데이터 꺼내기 LIFO 정책인 큐도 있다. Last-in-First-out import queue data_queue = queue.LifoQueue() data_queue.put('...') # 큐에 데이터 삽입 data_queue.qsize() # 큐에 있는 데이터 개수 산출 data_queue.get(..
집합(set)은 파이썬 2.3부터 지원하기 시작한 자료형으로, 집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형이다. 집합 자료형 만들기 s = set("Hello") # {'e', 'H', 'l', 'o'} 위 결과를 보면 Hello와는 달리 결과값이 뒤죽박죽이다. set에는 다음과 같은 2가지 특징이 있다. 중복을 허용하지 않는다. 순서가 없다. 리스트, 튜플은 순서가 있어 index로 값을 얻을 수 있었으나 set은 그렇지 않다. ** index로 접근하고 싶다면, list, tuple로 랩핑해 리스트 또는 튜플로 변환 후 접근하면 된다. 아래와 같은 자료형이 있다. s1 = set([1, 2, 3, 4, 5, 6]) s2 = set([4, 5, 6, 7, 8, 9]) 교집합 구하기 s1 & s2..
딕셔너리 쌍 추가 a = {1:'a'} a[2] = b # a = {1:'a', 2:'b'} 딕셔너리 요소 삭제 a = {1:'a', 2:'b'} del a[1] # a = {2:'b'} key 객체(dict_keys) 만들기 a = {'name': 'pey', 'phone': '0119993323', 'birth': '1118'} a.keys() # dict_keys(['name', 'phone', 'birth']) # 파이썬 3.0 이후에는 a.keys() 반환값으로 객체를 돌려준다. (기존엔 리스트 반환) # 따라서 리스트로 사용하고 싶은 경우 list(a.keys()) 로 사용해야 한다. # 하지만 리스트로 반환하지 않아도 반복 구문을 실행할 수 있다. # 리스트로 변환 list(a.keys())..
문제 input 태그에서 change가 일어날 때마다 어떤 정규식(숫자인지 체크)을 통과하면 alert 를 띄우도록 했다. const regExp = /\d/g; export function TextBox(){ const [value, setValue] = useState(''); const handleChange =(e)=>{ const currentValue = e.currentTarget.value; if(regExp.test(currentValue)){ alert('숫자를 입력하실 수 없습니다.') } setValue(currentValue); } ..... } --> 처음 숫자가 입력되었을 때 정규식 관련 조건문이 잘 작동되었다. 하지만 alert가 띄어진 이후 다시 숫자를 입력하면 조건이 작동..