PY4E 5주차

·2025년 4월 6일

a. while 루프

while문은 조건식에 적힌 값이 참일 경우에 들여쓰기 된 코드를 반복하고, 조건이 거짓이 될 경우에 루프를 그만두게 된다. while n>0 : 이라는 예시의 코드에서, 루프를 제어하기 위해 설계한 변수 n을 반복 변수라고 부른다.
조건식이 항상 참의 값을 갖는 경우를 무한 루프라고 하는데, 프로그램이 강제 종료되지 않는 이상 계속 반복문이 실행된다. 이와 반대로, 0과 비교하는 조건식을 활용하여 한 번도 실행되지 않는 루프를 제로 트립이라고 한다.

break는 반복 루프를 빠져나가기 위한 코드인데, 사용하면 루프 안으로 다시 돌아가지 않으며 루프 밖의 코드를 실행하게 된다. continue는 해당 회차의 실행을 멈추고, 루프의 제일 위로 돌아가서 루프를 다시 실행하게 된다.

불확정 루프란, 조건문의 값이 거짓이 되기 전까지 계속 실행되는 while 루프를 뜻한다. 코드의 길이가 길어지고 종료 조건이 복잡해지면 코드의 종료 여부가 불분명해지기 때문에 유한 루프를 사용해야 한다.

b. for 루프

유한 루프란, 루프가 실행되는 집합이 무엇이든 간에 유한 번 실행되는 루프로, 코드를 만들기 쉽고 반복 변수를 처리할 필요가 없다는 장점이 있다.

반복 횟수는 [5, 4, 3, 2, 1] 처럼 숫자 리스트로 지정해도 되고, friends = ['Joseph', 'Glenn', 'Sally'] 처럼 문자열 리스트를 사용해도 된다. 또한, range(0, 10, 1) 처럼 범위를 지정해도 된다.

while 루프에선 루프를 제어하기 위해 3줄의 코드가 필요하지만, for 루프에선 단 1줄의 코드만 필요로 한다. 반복 변수의 값을 변화시키면서 반복을 수행한다.

c. 반복문

루프 관용구란, 루프를 설계할 때 사용하는 패턴을 뜻한다. 숫자를 하나씩 차례대로 보여주면서 가장 큰 숫자를 찾으라고 하는데, 숫자의 수가 적기도 하고 큰 숫자도 아니어서 쉽게 맞힐 수 있었다. 이 문제는 답을 찾는 게 중요한 것이 아니라, 답을 찾는 과정이 중요한 문제였다. 컴퓨터는 순차적으로 인간이 입력한 코드에 따라 숫자를 비교하게 되는데, 이러한 방식은 루프에서 무언가를 실행하는 동안은 실제 답을 가리키지 않고 루프가 끝나면 답을 얻게 되는 방식이다.

d. 반복문 응용

변수를 0으로 설정한 후 루프가 반복될 때마다 1씩 증가시키면, 루프가 실행된 횟수를 구할 수 있다. 혹은, 반복 변수를 0으로 초기화한 변수에 더한다면 반복 변수의 총합을 알 수 있다. 반복 변수의 개수와 총합을 활용해서 평균값도 구할 수 있다. if문을 for문에 사용한다면 반복 변수 중 원하는 값을 찾아낼 수도 있다.

for 루프를 사용해서 최솟값과 최댓값을 찾아내는 코드에서, 처음 변수를 무엇으로 초기화하느냐에 따라 값이 달라지는 문제가 있었는데, 변수를 첫 번째 숫자로 초기화한다면 이러한 문제를 해결할 수 있다. None을 사용해서 처음 변수의 값을 없게 만들고, 이후 값을 비교한다면 최솟값과 최댓값을 정상적으로 찾아낼 수 있다.

파이썬에서 is는 == 연산자와 비슷한 뜻을 가지지만 약간의 차이점이 존재한다. is는 비교 대상 두 개의 자료형과 값이 같은지 검사하기 때문에, 값이 같지만 자료형이 다르다면 False를 반환한다. is는 ==보다 강력하기 때문에 남용하지 않아야 한다.

실습: 반복문

특정 문자열이 입력될 때까지 숫자 값을 입력받고 총합, 입력값의 수, 평균을 계산하는 프로그램을 작성하였다. 실수형으로 전환할 수 없는 값이 입력된다면 안내 문구를 출력하고 다시 입력을 진행한다.

Quiz 5

이번 퀴즈는 지금까지 풀었던 퀴즈 중 제일 헷갈리는 퀴즈였다... 2번 문제를 두 번이나 틀렸다.....ㅜㅠ 코드를 진짜 꼼꼼하게 봐야 할 것 같다...

0개의 댓글