클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

반복문 코드의 반복 줄이기 1 - for문 본문

프로그래밍 언어/파이썬

반복문 코드의 반복 줄이기 1 - for문

huenuri 2024. 8. 1. 10:21

이제 저녁 공부를 시작해본다. 원래 예상보다 30분 정도 늦어졌지만 중요한 일정이 있었던 거니 괜찮다. 땀 흘리며 열심히 운동하고 샤워까지 하니 정말 개운하니 기뻤다.
오후 늦게 약간 우울했던 마음도 씻은 듯이 사라졌다. 역시 사람은 열심히 몸을 움직이고 운동을 해야 활기찬 일상을 보내게 되는 것 같다.

오늘 밤까지 파이썬 4주차 수업을 모두 듣고 정리해보려고 한다. 마지막 단원은 반복문인데 이번 시간에는 for문에 대해서 살펴볼 것이다.
그럼 본격적으로 학습을 시작해보자!


 

 

 

이론 1 - 반복문 1 : for문

 

 

모두 같은 역할을 하고 있는데 별의 길이가 다르다. 이럴 때는 반복문을 사용한다.

 

 

 

 

 

 

 

반복문은 조건과 범위로 나눌 수 있다.

 

 

 

 

 

 

 

for문은 범위에 관한 반복문이다. 범위는 시퀀스로 주는데, 이 시퀀스 안에서 반복이 일어나는 것이다.

 

 

 

 

 

 

시퀀스 안에는 인덱스가 있는데 이것을 하나하나 넣어가면서 명령을 실행한다. C나 C++과는 많이 다른 식이라서 조금 생소하지만 하나씩 살펴보자.
먼저 1이 i에 들어간다. 현재 sum의 값은 0에서 1이 되고, 3, 6 이렇게 점점 숫자가 올라간다.
더이상 참조할 원소가 없으면 for문을 빠져나간다.

for문은 시퀀스 안에 있는 원소를 변수에 넣어가며 안에 있는 명령을 수행하는 구조를 갖고 있다.

 

 

 

 

 

 

 

 

원소 하나씩 넣고 for문을 반복하므로 7번 실행된다. 이 문자열의 길이를 구하고 싶으면 length에 0을 넣고 하나를 추가한다.
for문에서는 명령이 시퀀스의 길이만큼 즉 length만큼 실행된다.

 

 

 

 

 

 

 

print를 사용하면 10줄을 코딩해야 하지만, for문을 사용하면 두 줄로 줄일 수 있다. 이렇게 효율적인 코딩을 하기 위해서 함수와 모듈을 배우는 것이다.


 

 

 

 

퀴즈 1 - for 문

 

 

 


 

 

 

실습 1 - 원소로 반복 : for

 

 

i는 꼭 i일 필요는 없고 다른 변수로 바꾸어도 된다.

 

 

 

생각해보라는 문제를 한번 생각해보았다.

  1. print()문은 10번 실행되었다.
  2. i는 몇 번 반복할지 횟수를 정하는 변수이다.
  3. for문은 비슷한 조건을 여러번 반복해야 할 때 사용한다.
  4. 변수 이름은 마음대로 지어도 된다.

 

 

 

실습 2 - 쌀과 씰

 

 

반복문과 함께 앞에서 배운 조건문을 활용하면 풀 수 있는 문제이다. 먼저 쌀의 개수를 저장할 변수를 만든다. 그리고 이 변수에 들어오는 값이 쌀이면 이를 1개씩 올려준다.

 

 

word를 print했더니 오류가 떴다. word는 i와 같은 반복 횟수를 담는 변수이다. 배열이라면 모를까 word를 출력하면 안될 것 같다. 잘은 모르겠지만.

 

 

여기서 count는 쌀의 개수를 저장한 변수이므로 이걸 출력해야 한다.

 

 

근데 또 실행이 되지 않는다. 그 이유가 뭘까 보니 if문에 콜론을 찍지 않았다. 파이썬에서는 꼭 잊지 말아야 한다. 그러면 count가 if문 안에 포함되어야 하니 안에 넣어준다.
안 그러면 실행이 역시 안된다. 파이썬에서는 중괄호 대신 띄어쓰기로 모든 문장을 구분하기 때문이다.

 

 

정말 어렵게 풀었다~


 

 

 

 

실습 3 - 국가별 공항 분류하기

 

 

 

 

앞의 전체 공항 변수는 보지 못하고 모두 korea_airport만 사용했더니 컴파일 오류가 나왔다. for문에는 전체 공항에서 반복을 돌려주어야 하므로 airport를 써야 한다.
if 다음의 문장에서 airport.append()가 아닌 Korea_airport.append()인 이유는 여기에 저장을 하는 프로그램을 만들겠다고 말했기 때문이다.

 

 

하지만 이번에도 성공하지 못했다.

 

 

append에서 i가 들어가지 않았다. 그러면 반복이 안될테니까. 근데 뭐가 문제인지 이번에도 틀렸다. 윽.. 이럴 때 정말 절망감이 몰려온다. 아직은 내게 반복문이 너무 어렵다.

 

 

결국 15번 이상 틀려서 다시 풀고 풀다가 드디어 해결했다. 왜 이렇게 어려운지..

 

 

i와 for의 관계를 아직 잘 모르는 것 같다. 이 부분은 좀더 학습이 필요하겠다. 지금 당장은 이해하지 못하고 점점 더 알게 될 것 같다~


 

 

첫번째 단원 학습을 마치고

파이썬의 for문은 다른 언어에 비해 정말 어려운 것 같다. in을 쓰는 것이 생소하고 특히 영어를 못하기에 해석이 잘 되지 않았다. 공부는 속도보다 꾸준함인 것 같다. 언제나 목표를 갖고 해야 할 분량을 계획하지만, 그에 미치지 못할 때가 훨씬 더 많다.

이해하지 못한 상태에서 그냥 암기하듯 넘어가는 것보다는 충분히 생각하고 고민하는 과정이 필요하다고 생각한다. 이제 다음 단원으로 넘어가보자!