Python/Algorithm

[Python_Algorithm] 다중 루프 알아보기(자료구조와 함께 배우는 알고리즘 입문)

bangle0621 2021. 1. 17. 15:33

단순 반복문이 아닌 반복문 안에 반복문이 들어갈 수도 있다. 

# 구구단 곱셈표 출력하기

print('-'*27)
for i in range(1,10):
    for j in range(1,10):
        print(f'{i*j:3}',end='')
    print()
print('-'*27)

구구단의 알고리즘의 모습은 이렇다.

# 왼쪽 아래가 직각인 이등변 삼각형으로 * 출력하기

print('왼쪽 아래가 직각인 이등변 삼각형을 출력합니다.')
n=int(input('짧은 변의 길이를 입력하세요.:'))

for i in range(n):
    for j in range(i + 1):
        print('*', end='')
    print()   # 행 변경

i는 0에서 부터 시작하므로 *을 출력하는 횟수인 j는 i 보다 1이 + 된 수만큼 출력이 된다.

 

# 오른쪽 아래가 직각인 이등변 삼각형으로 * 출력하기

print('오른쪽 아래가 직각인 이등변 삼각형을 출력합니다')
n = int(input('짧은 변의 길이를 입력하세요,:'))

for i in range(n):
    for _ in range(n-i-1):
        print(' ', end = '')
    for _ in range(i + 1):
        print('*',end='')
    print()

오른쪽으로 붙이려면 공백이 나오는 부분이 계산되어야 하므로 왼쪽에 붙는 식보다는 복잡하다

for _ in range(n-i-1)을 사용하여 공백을 출력한다.

 

# 함수 내부.외부에서 정의한 변수와 객체의 식별 번호를 출력하기

n = 1     #전역 변수(함수 내부 외부에서 사용)
def put_id():
    x = 1  #지역 변수(함수 내부에서만 사용)
    print(f'id(x) = {id(x)}')
    
print(f'id(1) = {id(1)}')
print(f'id(n) = {id(n)}')
put_id()

파이썬에서 변수는 객체를 참조하는 객체에 연결된 이름에 불과하다.

모든 객체를 메모리를 차지하고, 식벽 번호를 가진다.

 

n은 전역 변수이고 x는 지역변수이지만 같은 식별 번호를 가짐을 볼 수 있다

파이썬에서는 함수가 시작하고 종료함에 따라 객체가 생성되거나 소멸되지 않는다.