1. while 문
가장 간단한 반복 매커니즘은 while 문입니다. 예를 들어 보겠습니다.
count = 1
while count < 5:
print(count)
count += 1
-----------------
1
2
3
4
1-1 break
무한 반복될 가능성이 있는 경우 break를 통해 빠져나올 수 있도록 탈출구를 만들 수 있습니다.
while True:
stuff = input("String to capitalize [type q to quit]: ")
if stuff == 'q':
break
print(stuff.capitalize())
1-2 continue
아무것도 하고 싶지 않고 그냥 다음 반복으로 넘어가고 싶은 경우에 사용할 수 있습니다.
while True:
stuff = input("홀수 출력[type q to quit]: ")
if stuff == 'q':
break
if stuff % 2 == 0:
continue
print(stuff)
1-3 while-else
while과 else의 조합은 그냥 브레이크 체커라고 생각하면 됩니다. 이게 무슨 말이냐면 while문이 모두 실행되었지만 break 문을 만나지 못한 경우 else 문이 실행된다.
numbers = [1, 3, 5]
position = 0
while position < len(numbers):
number = numbers[position]
if number % 2 == 0:
print("Found even number", number)
break
positoin += 1
else:
print('No even number found')
2. for 문
word = 'thunder'
for letter in word:
print(letter)
2-1 break
word = 'thunder'
for letter in word:
if letter =='u':
break
print(letter)
2-2 continue
word = "thunder"
for letter in word:
if letter in 'aeiou':
continue
print(letter)
2-3 for-else
word = 'thunder'
for letter in word:
if letter == 'x':
print("There is x", end=' ')
break
print(letter)
else:
print("There is no x")
----------------------------
t h u n d e r There is no x
for문에서 print문 실행되지만 break만나지 못했기 때문에 else 문이 또한 실행됩니다.
2-4 range
range()함수는 리스트나 튜플 같은 자료구조를 생성해 저장하지 않더라도 특정 범위 내에서 숫자 스트림을 반환합니다. 따라서 컴퓨터의 메모리를 전부 사용하지 않고, 아주 큰 범위의 스트림을 생성 할 수 있게 해줍니다.
range()는 순회 가능한 객체를 반환합니다. 그러므로 for in 형태로 값을 순회할 수 있습니다. 또 list()함수를 이용해 리스트로 형변환 할 수 도있습니다.