본문 바로가기
멋쟁이사자처럼 AI스쿨

반복문(파이썬 강의 Day2)

by 헬푸밍 2023. 1. 3.

반복문

while, for, break, continue, range(), enumerate(), zip()

특정 코드를 반복적으로 실행함으로서 코드 유지보수를 향상시킨다.

- while 반복문

무한루프에 빠지지 않도록 주의해야 한다.

무한루프에 빠지면 런타임에서 실행중단을 누른다.

 

while 반복문을 사용하여 'python'을 세번 출력해 보자!

count = 3
while count > 0
    print('python')
    count -= 1

단순히 print()함수를 반복해 코드를 작성하면...

'python'이라는 문자열이 바뀌었을 때 하나하나 다시 작성해야한다.

 

하지만 위의 코드에서는 한 번만 바꾸면 된다! -> 유지보수가 쉽다!

- for 반복문

for 반복문을 사용해서 python을 세번 출력해 보자!

for _ in [0, 1, 2]:
    print('python')

리스트에서 리스트의 원소를 하나하나 꺼내 리스트의 개수 만큼 반복한다.

반복되는 변수 값이 필요 없을 때는 주로 '_' 를사용한다(코드 실수 방지)

- range()

리스트를 만들어주는 함수

range(end), range(start, end), range(start, end, stride)의 형식으로 사용하며 마스킹문법과 유사

2023.01.02 - [멋쟁이사자처럼 AI스쿨] - 데이터 타입(파이썬 강의 Day1)

 

데이터 타입(파이썬 강의 Day1)

파이썬은 컴퓨터의 CPU, RAM, SSD(HDD)를 사용하는 방법이다... 그러므로 우리는 파이썬의 문법을 학습해야한다! 데이터타입 데이터타입은 RAM을 효율적으로 사용하는 문법이다. - 기본 데이터타입 - i

helpming.tistory.com

마스킹 문법은 위의 글을 참고하세요!

 

for 반복문을 사용하여 'jupyter'을 세 번 반복해 보는 코드

for _ in range(3):
    print('jupyter')

결과가 잘 출력된다.

- break, continue

break : 반복되는 코드를 중단

continue : 아래에 있는 코드를 실행하지 않고 반복구문의 코드로 올라가서 코드를 실행

break와 continue는 while문에서도 그대로 동작

 

0~10까지의 숫자 중 5보다 작은 짝수만 출력하는 코드를 작성해보자!

for data in range(10):

    if data % 2: # 홀수 일때 True
        continue
    if data >= 5:
        break
    
    print(data)

홀수 일때는 데이터가 출력되지 않고 반복문으로 다시 돌아가고...

데이터가 5가 되면 코드를 중단시키기 때문에...

이렇게 출력된다.

 

- 랜덤한 숫자 맞추기 게임

# 1. 0 ~ 9의 랜덤한 숫자 생성
import random
random_number = random.randint(0, 9)
# 2. 숫자를 입력한 횟수를 카운팅하는 변수 선언
count = 0
# 3. 아래의 내용 반복
while True:
    # 3-1. 숫자를 입력 받음
    input_number = int(input('숫자를 입력하세요(0~9) : '))
    # 3-2. 카운팅 +1 추가
    count += 1
    # 3-3. 랜덤한 숫자와 입력받은 숫자가 같은지 확인
    if input_number == random_number:
    # 3-4. 같으면 카운팅 횟수 출력 > 게임 종료
        print(f'count : {count}')
        break
    # 3-5. 다르면 up, down 출력하기 > 게임 계속
    elif input_number >= random_number:
        print('down')
    else:
        print('up')
print('게임 종료')

코드를 이렇게 작성해 준다!

실행해 보면

4번만에 맞췄다...

 

- enumerate()

반복문에서 리스트 데이터에 인덱스 숫자를 출력할 때 사용

users = ['홍길동(32)', '김파이썬(27)', '정노트북(43)']
idx = 0
for user in users:
    print(idx, user)
    idx += 1

enumerate를 사용하지 않고 이렇게 코드를 작성할 수도 있지만...

users = ['홍길동(32)', '김파이썬(27)', '정노트북(43)']
for idx, user in enumerate(users):
    print(idx, user)

enumerate를 사용하면 좀 더 간단하게 인덱스를 표시할 수 있다.

두 코드 모두 같은 결과를 출력한다.

또한 enumerate는 데이터가 튜플 형식으로 나오기 때문에 for과 in사이에 두 개의 변수를 넣을 수 있다.

- zip()

같은 인덱스의 데이터끼리 튜플로 묶어서 리스트로 출력

데이터의 개수가 다르면 작은 인덱스 기준으로 묶인다.

players = ['손흥민', '메시', '호날두']
goals = [30, 20, 10]
games = [50, 30, 40, 20]
print(list(zip(players, goals, games)))
for data in zip(players, goals, games):
    print(data)

인덱스가 다른 경우 작은 인덱스로 묶이는 것과...

리스트 형식으로 반환되는 것을 알 수 있다!


이번 시간에는 반복문에 대해서 알아봤습니다.

 

제가 즐겨 듣는 노래가 생각납니다...

(21) 줍에이 (Joob A) - 반복 (repeat) [Official Audio] - YouTube

줍에이의 반복을 들으면서... ㅂㅇ루...

댓글