1. while 반복문


🚀  do while문이 없음
🚀  특정 조건을 만족하는 동안 반복해서 수행해야 하는 코드를 작성할 때 사용

while 조건식 :
    반복실행문

 

# while 반복문 사용
n = 1
while n <= 10:
    print(n)
    n += 1   # n = n + 1
print(n)

# 1부터 10 사이의 모든 정수를 역순으로 출력
n = 10
while n >= 1:
    print(n)
    n -= 1  # n = n - 1


# 100부터 50 사이의 짝수를 출력
n = 100
while n >= 50:
    if n % 2 == 0:
        print(n)
    n -= 1

n = 100
while n >= 50:
    print(n)
    n -= 2

 


1) 리스트 사용한 while 반복문

'''
사용자로부터 임의의 정수를 입력받아 모두 리스트에 보관.
단 사용자가 0을 입력하면 프로그램을 종료. 이 때 입력받은 0은 리스트에 보관하지 않음.
'''

my_list = []  # 빈 리스트 생성

# 방법 1)
n = int(input('정수를 입력하세요(종료는 0입니다.) >>> '))  # 한 번만 실행

while n != 0:  # n이 0이 아니면 계속 실행
    my_list.append(n)
    n = int(input('정수를 입력하세요(종료는 0입니다.) >>> '))

print(my_list)
print()

# 방법 2)
n = 1  # 0이 아닌 초깃값을 주면 반복문이 실행됩니다.

while n != 0:
    n = int(input('정수를 입력하세요(종료는 0입니다.) >>> '))
    my_list.append(n)

my_list.pop()  # my_list의 마지막 요소는 언제나 0이므로 제거합니다.
print(my_list)

 


 

2) 시간을 기반으로 반복 

🚀  유닉스 타임 Unix Time : 세계 표준시로 1970년 1월 1일 0시 0분 0초를 기준으로 몇 초가 지났는지를 정수로 나타낸 것 

# 유닉스 타임 구하는 법
import time
time.time()
# 시간 모듈
import time

# 변수 선언
number = 0

# 5초 동안 반복
target = time.time() + 5
while time.time() < target:
    number += 1
    
# 출력
print("5초 동안 {}번 반복했습니다.".format(number))
# 5초 동안 65488529번 반복했습니다.

 


 

2. break/continue 키워드

 

👩🏻‍💻  break문 : while문이나 for문과 같은 반복문을 강제로 종료하고자 할 때 사용하는 제어문
                         반복문 내에 break문이 나타나면 곧바로 break문이 포함된 반복문은 종료

n = 1
while True:
    print(n)
    if n == 10:
        break  # if문에서 break문을 작성 했지만 실제로 종료되는 것은 while문
    n += 1
print(n)  # 10

while True:  # 무한 루프
    city = input('대한민국의 수도는 어디인가요? >>> ')
    city = city.strip()  # 문자열의 양쪽끝에서 공백을 없앰
    if city == '서울' or city == 'seoul' or city == 'SEOUL':  # 대소문자 모두 정답처리
        print('정답입니다.')
        break  # 정답을 맞춰야 종료
    else:
        print('오답입니다. 다시 시도하세요.')


# 종료 조건이 2가지인 경우 : 5개까지 입력이 가능 혹은 그전에 그만두려면 q 입력

hobbies = []  # 빈 리스트 생성
while True:  # 무한루프
    hobby = input('취미를 입력하세요(종료는 그냥 q) >> ')
    if hobby == 'q':
        print('입력된 취미가 모두 저장되었습니다.')
        break
    else:
        hobbies.append(hobby)

    if len(hobbies) >= 5:
        print('5개 입력!')
        break
print(hobbies) # 전체 요소 출력

 


 

👩🏻‍💻  continue 문반복문의 시작 지점으로 제어의 흐름을 옮기는 역할
                                 반복에서 제외하거나 생략하고 싶은 코드가 존재할 때 사용

# 1에서 100사이의 모든 정수를 합하는데 3의 배수는 제외
total = 0
for a in range(1,101):
    if a % 3 == 0:  # 3의 배수인지 검사합니다.
        continue
    total += a
print(total)  # 3367


# 과일 이름 5개를 fruits 리스트에 저장.
# 2개는 미리 저장됨.
# 중복된 과일 이름은 저장이 안됨.

fruits = ['사과', '감귤']
count = 3  # 입력가능한 횟수

while count > 0:
    fruit = input('어떤 과일을 저장할까요? >>> ')

    if fruit in fruits:  # fruits 리스트에 fruit 변수에 있는 값이 있다면
        print('동일한 과일이 있습니다.')
        continue  # while문의 시작 지점으로 돌아가서 다시 과일 이름을 입력

    fruits.append(fruit)  # 입력된 과일 이름을 리스트에 저장
    count -= 1  # 입력 가능 횟수가 줄어듦.
    print(f'입력이 {count}번 남았습니다.')

print(f'5개 과일은 {fruits}입니다.')

 

 

 

 

 

[ 내용 참고 : IT 학원 강의 자료 및 책 '혼자 공부하는 파이썬' ]

+ Recent posts