Languages/Python(13)
-
[Python] 파일 입출력 (File I/O) + with 문법
파일 열기 (Open) open() 함수를 이용하여 파일을 열 수 있습니다. 읽기 전용으로 열고 싶으면 'r', 쓰기 전용으로 열고 싶으면 'w'을 인자로 줍니다. _file = open(file = "ex1.csv", mode = 'r') ... # 작업을 마쳤다면 닫아줍니다. _file.close() 파일 읽기 (Read) readline() 메소드를 이용하여 한 줄씩 차례대로 읽을 수 있습니다. _file.readline() # 'a, b, c, d, message\n' _file.readline() # '1, 2, 3, 4, hello\n' _file.readline() # '5, 6, 7, 8, world\n' _file.readline() # '9, 10, 11, 12, foo\n' _file..
2022.06.13 -
[Python] Generator, Enumerate, Zip
Generator Iterator의 특별한 종류 각 멤버를 생성하는 방법을 저장한 후, 반복을 통해 요청될 때만 각 멤버를 한 번에 하나씩 생성합니다. 그렇기에 많은 메모리 공간이 필요하지 않습니다. for문에서 자주 쓰이는 range()가 for 문에서 활용될 때는 Generator로 변환되어 실행됩니다. [0, 1, 2, 3, 4] # 0, 1, 2, 3, 4 모든 값을 메모리에 저장 range(5) # 0 ~ 4의 수열을 생성하는데 필요한 명령만 저장 Generator 만들기 return 키워드 대신, yield 키워드를 이용하면 만들 수 있습니다. def EventNumbers(): n = 1 while True: if (n % 2 == 0) : yield n n += 1 g = EvenNumbe..
2022.06.12 -
[Python] Iterable, Iterator
Iterables 기본 설명 iterable 또는 interable container는 한 번에 하나씩 멤버를 반환할 수 있는 모든 Python 객체 for 문에서 반복을 사용할 수 있도록 해줍니다. for 문에서 활용될 때, Python 내부적으로는 iter() 함수를 이용하여 Iterator라는 객체를 반환하여 사용합니다. Iterator는 next() 함수를 이용하여 다음 멤버를 반환할 수 있습니다. studentList = ['Tom', 'Jack', 'Jane', 'Susan'] iteratorObject = iter(studentList) # iterator 생성 print(next(iteratorObject)) # 'Tom' print(next(iteratorObject)) # 'Jack' ..
2022.06.12 -
[Python] Lambda 식
Lambda Expression 개념 무명 함수(Anonymous function)을 만들 때 사용하며, 특별한 이름이 없는 1회성 함수를 만들 때 사용한다. 함수를 선언하는 def 키워드 대신, lambda 키워드를 사용하여 선언한다. lambda arguments : expression 사용법 다음 두 코드는 동일한 기능을 수행하는 코드이다. # 일반 함수 생성 def AddPlusOne(x, y) : return x + y + 1 # 람다식 AddPlusOne = lambda x, y : x + y + 1 실제로 사용해보면 다음과 같다. AddPlusOne = lambda x, y : x + y + 1 result = AddPlusOne(1, 2) print(result) # 3 출력 (lambda..
2022.06.12 -
[Python] While / else
while / else Python에 있는 독특한 문법 while 문의 반복 조건이 False일 경우, else 문을 실행한다. while 문에 아예 진입하지 않았을 경우, else 문이 실행된다. x = 5 while x != 5: print("while 문 실행") else: print("else 문 실행") # "else 문 실행" 출력 while 문이 정상적으로 종료될 경우, else 문이 실행된다. x = 0 while x < 5: x += 1 else: print("else 문 실행") # "else 문 실행" 출력 단, break를 통해 강제로 while 문을 빠져 나올 경우에는 else 문이 실행되지 않는다. x = 0 while x < 5: x += 1 if x == 3: break el..
2022.06.12 -
[Python] 파이썬을 통해 구현한 DFS와 BFS
DFS (Depth-First Search) 깊이 우선 탐색이라고도 부르며, 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘 스택(Stack) 자료구조를 이용하여 구현 동작과정 탐색 시작 노드를 스택에 삽입하고 방문 처리한다. 스택의 최상단 노드에 방문하지 않은 인접 노드가 있으면 그 인접 노드를 스택에 넣고 방문 처리한다. 방문하지 않은 인접 노드가 없으면 스택에서 최상단 노드를 꺼낸다. 2번의 과정을 더 이상 수행할 수 없을 때까지 반복한다. 소스코드 # DFS # 방문 정보를 리스트 자료형으로 표현 visited =[False] * 9 # 각 노드가 연결된 정보를 리스트 자료형으로 표현 (2차원 리스트) graph = [ [], # 1번 노드와 연결된 노드들 [2, 3, 8], # 2번 노드와 ..
2022.05.14