반복문(Loop)
파이썬의 많은 객체는 반복가능(iterable)입니다.
객체내의 모든 요소, 리스트의 모든 요소, 문자열의 모든 요소 그리고 반복문을 반복하여 코드 구문을 여러번 실행 할 수 있습니다.
반복(iterate)의 의미는 객체를 순회하며 반복할 수 있고, 객체 내의 모든 요소마다 작업을 수행 할 수 있다는 것입니다.예를 들어, 문자열의 모든 문자에 대해, 해당 문자열을 순회하며 모든 문자에 대해 반복적으로 무언가를 수행 할 수있습니다. 우리는 문자열의 모든 단일 글자나 문자를 출력하고 싶을 때, 문자열은 이터러블 객체이므로 작업 가능합니다. 또한 리스트의 각 항목을 이터레이트 할 수 있습니다. 리스트가 이터러블이란 뜻입니다.
1. For문
for문의 기본 구조
my_iterable = [1,2,3]//이터러블 선언
for item_name in my_iterable://선택가능한 변수입니다, 이터러블 객체 요소 하나하나에 대한 자리 표시자가 될것입니다.
print(item_name)
>>1
>>2
>>3
이때 굳이 item_name을 안적어도 됩니다. print("안녕")을 출력시켜도됩니다. 그렇다면 "안녕"이 3번 출력이 됩니다.item_name은 단지 이터러블 객체 각 요소에 대한 자리를 나타내 주는 것입니다. 약간 인덱싱과 비슷합니다.
for letter in 'string.':
print(letter)
>>s
>>t
>>r
>>i
>>n
>>g
맨위에서 얘기했듯이 문자열도 이터러블합니다. 따라서 letter을 출력하게 되면 문자열 객체의 각 요소가 하나씩 출력이 됩니다.
For문의 응용
1)튜플
list2 = [(2,4),(6,8),(10,12)]
for tup in list2:
print(tup)
(2, 4)
(6, 8)
(10, 12)
튜플은 for 루프와 관련하여 특별한 품질을 가지고 있습니다. 튜플이 포함된 시퀀스를 반복하는 경우 항목은 실제로 튜플 자체일 수 있습니다. 이것은 튜플 압축 풀기의 예입니다. for 루프 동안 시퀀스 내부의 튜플을 풀고 해당 튜플 내부의 개별 항목에 액세스할 수 있습니다!
2) 반복문으로 짝수 구하기
for num in list1://1,2,3,4,5,6,7,8,9,10
if num % 2 == 0:
print(num)
2
4
6
8
10
3) for문과 range 함수
3-1)range함수 매개변수에 숫자를 한개만 넣는 경우
range(A)
0부터 A-1 까지의 정수 범위를 반환합니다. A까지가 아닌 A-1 이라는 것에 주의하세요.
>>> a = range(7)
>>> print (list(a))
[0,1,2,3,4,5,6]
3-2)range함수 매개변수에 숫자를 두개 넣는 경우
range(A, B)
A부터 B-1 까지의 정수 범위를 반환합니다. B까지가 아닌 B-1 이라는 것에 주의하세요.
>>> a = range(2, 7)
>>> print (list(a))
[2,3,4,5,6]
3-3)range함수 매개변수에 숫자를 세개 넣는 경우
range(A, B, C)
A부터 C 숫자만큼의 간격으로 B-1 까지의 정수범위를 반환합니다.B까지가 아닌 B-1이라는 것에 주의하세요.
>>> a = range(1, 7, 2)
>>> print (list(a))
[1, 3, 5]
3-4)For문 내에 range() 함수 사용하기
add = 0
for i in range(1, 11):
add = add + i
print(add)
>> 55
range(1, 11)은 숫자 1부터 10까지(1 이상 11 미만)의 숫자를 데이터로 갖는 객체이다. 따라서 위 예에서 i 변수에 숫자가 1부터 10까지 하나씩 차례로 대입되면서 add = add + i 문장을 반복적으로 수행하고 add는 최종적으로 55가 됩니다.
2. While문
반복해서 문장을 수행해야 할 경우 while문을 사용한다. 그래서 while문을 반복문이라고도 부른다.
while문은 조건문이 참인 동안에 while문에 속한 문장들이 반복해서 수행된다.
while문의 기본 구조
while <조건문>:
<수행할 문장1>
<수행할 문장2>
<수행할 문장3>
...
while문 강제로 빠져나가기
break는 for와 while 문법에서 제어흐름을 벗어나기 위해 사용합니다. 즉, 루프를 완전히 중단하죠.
i = 0
while True: # 무한 루프
print(i)
i += 1 # i를 1씩 증가시킴
if i == 100: # i가 100일 때
break # 반복문을 끝냄. while의 제어흐름을 벗어남
while문의 맨 처음으로 돌아가기
i = 0
while i < 100: # i가 100보다 작을 때 반복. 0부터 99까지 증가하면서 100번 반복
i += 1 # i를 1씩 증가시킴
if i % 2 == 0: # i를 2로 나누었을 때 나머지가 0이면 짝수
continue # 아래 코드를 실행하지 않고 건너뜀
print(i)
while i < 100:으로 0부터 99까지 반복하도록 만듭니다. 그리고 i를 1씩 증가시킨 뒤 if를 사용하여 i가 짝수이면 continue를 실행합니다. 마지막으로 print를 사용하여 i의 값을 출력합니다.
이렇게 하면 i의 값에 따라 continue 아래에 있는 print를 건너뜁니다.
while문 무한 루프
while True: # while에 True를 지정하면 무한 루프
print('Hello, world!')
... (생략)
Hello, world!
Hello, world!
Hello, world!
Hello, world!
... (계속 반복)
while에 True 대신 True로 취급하는 값을 사용해도 무한 루프로 동작합니다.
while 1: # 0이 아닌 숫자는 True로 취급하여 무한 루프로 동작
print('Hello, world!')
while 'Hello': # 내용이 있는 문자열은 True로 취급하여 무한 루프로 동작
print('Hello, world!')
'Python' 카테고리의 다른 글
Python Dictionaries (1) | 2023.01.29 |
---|---|
Python Conditional Satement (0) | 2023.01.20 |
Python Tuple (0) | 2023.01.19 |
Python List (0) | 2023.01.19 |
Python Strings (0) | 2023.01.19 |