ETC/python
python 기본
wooyeon06
2024. 8. 26. 15:28
https://www.python.org/downloads/
Download Python
The official home of the Python Programming Language
www.python.org
환경변수
VSCODE > code실행
변수
파이썬에서 변수의 범위(scope)는 변수가 어디에서 접근 가능하고 어디에서 접근 불가능한지를 결정하는 규칙을 의미합니다. 파이썬에서는 변수의 범위가 LEGB 규칙에 따라 결정됩니다. LEGB는 다음 네 가지 범위를 나타냅니다
- 지역 범위 (Local Scope):
- inner_function 내부에서 x는 'local'로 설정됩니다. 이 x는 inner_function 내부에서만 접근 가능합니다.
- inner_function이 끝나면, 이 x는 더 이상 사용되지 않습니다.
- 내포된 범위 (Enclosing Scope):
- outer_function 내부에서 x는 'enclosing'으로 설정됩니다.
- inner_function 내부에서 지역 변수를 찾지 못하면, 내포된 범위의 변수를 참조할 수 있습니다.
- 전역 범위 (Global Scope):
- 함수 외부에서 정의된 x는 'global'입니다.
- 모든 함수와 코드 블록에서 이 변수에 접근할 수 있습니다.
- 내장 범위 (Built-in Scope):
- 파이썬 내장 함수들이 이 범위에 포함됩니다. 예를 들어, len()이나 range()와 같은 함수는 내장 범위에 있습니다.
변수의 범위
x = 'global' # 전역 변수
def outer_function():
x = 'enclosing' # 외부 함수(내포된 범위)
def inner_function():
x = 'local' # 내부 함수(지역 변수)
print("Inner:", x) # 지역 변수를 참조
inner_function()
print("Outer:", x) # 외부 함수의 변수를 참조
outer_function()
print("Global:", x) # 전역 변수를 참조
출력 결과:
Inner: local
Outer: enclosing
Global: global
예제
플로이드마샬
import sys
sys.stdin = open("input.txt", 'r')
if __name__=="__main__":
n, m=map(int, input().split())
dis=[[5000]*(n+1) for _ in range(n+1)]
for i in range(1, n+1):
dis[i][i]=0
for i in range(m):
a, b, c=map(int, input().split())
dis[a][b]=c
for k in range(1, n+1):
for i in range(1, n+1):
for j in range(1, n+1):
dis[i][j]=min(dis[i][j], dis[i][k]+dis[k][j])
for i in range(1, n+1):
for j in range(1, n+1):
if dis[i][j]==5000:
print("M", end=' ')
else:
print(dis[i][j], end=' ')
print()
위상정렬(deque)
import sys
from collections import deque
sys.stdin=open("input.txt", "r")
n, m=map(int, input().split())
graph=[[0]*(n+1) for _ in range(n+1)]
degree=[0]*(n+1)
dQ=deque()
for i in range(m):
a, b=map(int, input().split())
graph[a][b]=1
degree[b]+=1
for i in range(1, n+1):
if degree[i]==0:
dQ.append(i)
while dQ:
x=dQ.popleft()
print(x, end=' ')
for i in range(1, n+1):
if graph[x][i]==1:
degree[i]-=1
if degree[i]==0:
dQ.append(i)