1. 클로저
x = 10 # 전역변수
def foo():
global x
x = 11
print(x)
foo()
print(x) # 출력
파이썬은 그냥 바로 선언하면 전역변수임
그 전역변수를 함수에서 사용하려면 global 로 지정해야됨
2. 언더바 사용
값을 무시하고 싶을때
x,_,y = 1,2,3
이렇게 선언하면 중간의 2 값은 무시하고
x는 1, y는 3으로 선언됨
x,*_,y = 1,2,3,4,5
이렇게하면 중간 값들은 다 생략하고 1, 5 만 선언됨
for을 사용할때 index가 필요 없을떄
for _ in range(10):
-> 인덱스가 필요없고 그냥 10번 반복하고 싶을때
메소드에 _가 붙을때
-> 외부 사용자가 사용하지 말라는 권유의 문법 / 만약 import * 를 하면 _가 앞에붙어있는 변수나 메소드는 호출이 되지 않음
-> 매직 메소드 / 클래스를 작성할때 __init__ , __str__ 등의 사용
3. dfs , bfs 파이썬으로 구현
def bfs(v):
q = deque()
q.append(v)
visit_list[v] = 1
while q:
v = q.popleft()
print(v, end = " ")
for i in range(1, n + 1):
if visit_list[i] == 0 and graph[v][i] == 1:
q.append(i)
visit_list[i] = 1
#스택
def dfs(v):
q = deque()
q.append(v)
while q:
v = q.pop()
if visit_list2[v] == 0:
visit_list2[v] = 1
print(v, end = " ")
temp = deque()
for i in range(1, n + 1):
if visit_list2[i] == 0 and graph[v][i] == 1:
temp.append(i)
temp.reverse()
q = q + temp