Python 코딩도장

16~19장

Posted by 동식이 블로그 on January 9, 2019

코딩도장 python 16~19장

16장. for와 range사용하기

For문

  • 반복 횟수가 정해져 있을 때 주로 사용

17장. While 반복문 사용하기

While문

  • 조건식으로만 동작하며 반복할 코드 안에 조건식에 영향을 주는 변화식이 들어감
1
2
3
4
i = 0                     # 초기식
while i < 100:            # while 조건식
     print('Hello, world!')    # 반복할 코드
     i += 1                    # 변화식

Random

1
2
3
4
5
6
7
random.randint(1,6)
>>> 4 
# 1~6사이의 난수 생성
dice = [1,2,3,4,5,6]
random.choice(dice)
>>> 1
# 시퀀스 객체에서 요소를 무작위로 선택

변수 두개 반복하기

1
2
3
while i <= 32 or j >= 1:
	i *= 2
	j -= 1

18장. break, continue로 반복문 제어하기

break

  • 제어흐름을 중단하고 빠져나옴
1
2
3
4
5
6
7
8
9
10
11
i = 0
while True:    # 무한 루프
    print(i)
    i += 1          # i를 1씩 증가시킴
    if i == 100:    # i가 100일 때
        break       # 반복문을 끝냄. while의 제어흐름을 벗어남
        
for i in range(10000):    # 0부터 9999까지 반복
    print(i)
    if i == 100:    # i가 100일 때
        break       # 반복문을 끝냄. for의 제어흐름을 벗어남

continue

  • 제어흐름을 유지한 상태에서 코드의 실행만 건너뛰는 역할
1
2
3
4
5
6
7
8
9
10
11
for i in range(100):       # 0부터 99까지 증가하면서 100번 반복
    if i % 2 == 0:         # i를 2로 나누었을 때 나머지가 0면 짝수
        continue           # 아래 코드를 실행하지 않고 건너뜀
    print(i)
    
i = 0
while i < 100:        # i가 100보다 작을 때 반복. 0부터 99까지 증가하면서 100번 반복
    i += 1            # i를 1씩 증가시킴
    if i % 2 == 0:    # i를 2로 나누었을 때 나머지가 0이면 짝수
        continue      # 아래 코드를 실행하지 않고 건너뜀
    print(i)

pass

  • for, while에서 아무 일도 하지 않지만, 반복문의 형태를 유지하고 싶을 때
1
2
3
4
5
for i in range(10):    # 10번 반복
    pass               # 아무 일도 하지 않음

while True:    # 무한 루프
    pass       # 아무 일도 하지 않음

19장. 중첩 루프 사용하기

2중 루프

  • i를 사용하는 바깥쪽 루프는 세로방향을 처리
  • j를 사용하는 안쪽 루프는 가로방향을 처리
1
2
3
4
5
6
for i in range(5):          # 5번 반복. 바깥쪽 루프는 세로 방향
    for j in range(5):      # 5번 반복. 안쪽 루프는 가로 방향
        print('j:', j, sep='', end=' ')    # j값 출력. end에 ' '를 지정하여 줄바꿈 대신 한 칸 띄움
    print('i:', i, '\\n', sep='')    # i값 출력, 개행 문자 모양도 출력
                                     # 가로 방향으로 숫자를 모두 출력한 뒤 다음 줄로 넘어감
                                     # (print는 기본적으로 출력 후 다음 줄로 넘어감)

대각선 별찍기

1
2
3
4
5
6
7
for i in range(5):
    for j in range(5):
        if( j == i ):
            print("*", end="")
        else:
            print(" ", end = "")
	print()

역삼각형 별찍기

1
2
3
4
5
6
7
for i in range(5):
    for j in range(5):
        if(j < i):
            print(" ", end = "")
        else:
            print("*", end = "")
    print()