python 정리 - 3

donghani·2023년 10월 14일

📌반복문이란?

반복문이란, 지난 글에서의 제어문의 반복 구조이다.
반복 구조도 지속적으로 할지 끝 낼지에 대한 조건을 따져볼 수 있으며,
참일 때 계속 반복하고, 거짓일 때 끝나는 순서도의 구조이다.

반복문의 종류에는, 2가지가 있다.
정해진 횟수만큼 반복할 것인가, 조건이 성립되는 동안 반복을 할 것인가
for문과 while문

📌for문

for문은 반복문 시작 전에 반복 횟수를 아는 경우에 사용한다.
for라는 키워드라고 시작해서 in 뒤에 정의된 횟수만큼 반복
조건문과 동일하게 for 문장 이후에 클론(:) 붙이기
반복되는 코드 블록은 들여쓰기 (띄어쓰기 4번)으로 구분
range 안에는 (시작값, 끝값 + 1)의 값이 들어간다.
range 안에 (시작값, 끝값+1, 증가값)을 설정해서 반복할 수 있는 횟수를 정할 수 있다.
range 함수는 iterable한 정수 원소를 가진 list 유사의 객체

for i in range(1,10): #즉 1부터 9까지의 반복이라 보면된다.
	print(a);
for i in range(1, 10, 3): #1부터 9까지 3씩 증가하여 반복
#기본값은 1

시작값 , 끝값 , 증가값을 설정하는것에 따라 감소시키면서도 반복을 할 수 있다.

for문은 중첩해서 사용할 수 있는다. 바깥과 안쪽이라고 생각하며 된다.
i,j,k가 관례이고
바깥이 처음 돌아가고 그 안에 for문이 다 돌면 그 바깥 for문이 돈다.
이것 또한 띄어 쓰기가 중요하다.

for i in range(1,10):
	for j in range(1, 10):
    	print(a) #i = 1일때 j가 9번 반복되야지
    #for문을 나가서 i가 2가됌

for문 반복은 계속 중첩 할 수 있다.


📌while문

while문은 for문과 살짝 달게, 반복 횟수를 정하는 게 아닌 조건식이 참일때, 반복을 한다.
if문의 반복 버전이라고 생각해도 편하다.
while문도 조건식 다음 콜론(:)을 붙이고
조건식은 True or False 계산
관계 연산자를 사용한다.

i = 0
sum = 0

while i<=10:
	sum = sum + i
    i = i + 1

이런 식으로 증가한다고 보면 된다.

while문은 무한루프에 빠지기 쉽다.
저 위의 코드에서 i값을 증가시키지 않았다면 무한루프에 빠졌을 것이다.
while True:라고도 하면 무한 반복이 가능하다.
이러한 무한 반복의 성질을 활용한다면, 프로그램 작성할 수 있다.
무한 반복의 성질에서 잘 알아둬야 할것이 break이라는 키워드이다.
반복문을 빠져 나와 종료 시키는 것이다.

while True:
	a = input("a~z까지의 단어 중 아무거나 넣어보세요. ")
    if a == 'q':
    	print("종료합니다")
        break

방금 코드를 보면 a가 q가되면 while문은 종료된다.
결국 모든 반복문에서 break문을 사용하면 break바로 전까지 실행이 되고
break을 만났을 때 종료되는 성질을 이용할 수 있다.

또 continue라는 키워드가 있는데, continue는 현재 반복을 생략하고
다음 순번의 반복을 수행하라는 명령이다.

while True:
	a = 10
   if a = 10:
   	continue
   elif a = 15: #continue가 실행 되면 elif가 무시된다.

하위 문장을 실행하지 않는다라고 보면 된다.
그림
그림을 계속 보고 이해해보자

#break, continue로 예제
#while 무한루프를 사용하면서 10 이하의 홀수만 나오게 하기
i = 0

while True:
	i = i + 1
    if i > 10:
    	break
    if i % 2 ==0:
    	continue
    print(i)
print("while 종료")

📌for, while 비교

반복 횟수가 제시될 때 반복 -> for
조건이 만족하는 한 계속 반복 -> while
즉, 무한 반복이 필요하면서 특정 조건이 만족 될 때 반복이 멈춰야하는
case에선 while문이 적합하고
처음부터 반복횟수가 정해져있다면, for문이 더 적합하다.


📌파이썬의 반복문 특징

for문의 reversed() 함수는 파이썬 인터프리터가 제공해주는 내장함수 중 하나로 시퀀셜 타입 데이터에 역 이터레이터를 돌려준다.
즉 reverse를 시켜준다고 보면된다.

for i in range(0,5):
	print("i: ",i)
for i in reversed(range(0, 5)):
	print("i: ", i)
#range() 함수 결과에다가 reversed를 적용할 수 있다.
#0,1,2,3,4
#,4,3,2,1,0
# 이 나온다.

또 다른 특징으로는 리스트라는 자료구조에서 대괄호를 활용해서 값을 넣으면 그 값 넣은 순서가 바뀌지 않고 유지된다.
리스트 안에 값 개수만큼의 반복

리스트는 숫자뿐만 아니라 boolean 실수 문자형도 가능하다.

파이썬은 문자형의 반복도 가능하다.
순서가 있는 자료형이라면 어느 것이든 반복 횟수를 제공할 수 있다.
-> 중요한 point

enumerate()함수는 순서가 있는 자료형을 입력으로 받아 인덱스 값을 포함하는 enumerate 객체를 반호나해준다.
인덱스는 순서가 있는 자료형의 순서를 표시
리스트가 ['강원대',0.4,10,True]
라면, 인덱스 0에 강원대, 인덱스 1에 0.4등을 표시해줌

반복문은 결론적으로 초입에서 조건식을 검사하고 반복을 한다.

profile
컴퓨터 공학과 이방인

0개의 댓글