본문 바로가기

컴퓨터공학/파이썬 입문

[노베이스, 취준생을 위한 파이썬] - 3강 for문

반응형

본 강의 시리즈는 파이썬 입문 및 복습을 위한 강좌입니다. 모든 포스팅은 아래의 링크에서 확인가능합니다!


1강 - 변수와 자료형

2강 - 제어구조 ( if else 문)

3강 - 제어구조 ( for 문)

4강 - 제어구조 ( while 문)

5강 - 함수

6강 - 재귀함수

7강 - 람다 (lambda)

8강 - 문자열, 리스트

9강 - 튜플, 딕셔너리, 세트

10강 - 유용한 라이브러리

11강 - 클래스

12강 - 예외처리


3강 - for문

for문은 파이썬의 심장이다.. 안들어가는 곳이 없다. 일단 간단하게 어떠한 일을 여러번 반복하고 싶을때 사용을 한다. a 라는 글자를 1억번 쓰고 싶을때, 직접 1억번 쓰는거 보다, 1억번 써주세요! 하고 컴퓨터한테 의뢰하는게 더 좋기때문! 대표적으로 쓰는 반복문에는 for문과 while문이 있는데, 오늘은 for문으로 가보겠다. 

 

일단 for문과 while문의 차이는 다음과 같다. 

for문: 정해진 횟수만큼 돌린다. 

while문: 조건을 주고 그 조건이 참일때만 계속 돌린다. 거짓이 되면 그만 돌림.

 

간단한 예제를 통해 맛을 봐보자.

range로 범위를 정해주고 그 범위내에서 변수 i가 순차적으로 돌아간다. 해당 범위는 다음과 같이 자유롭게 쓸 수 있다. 

 

여기서 i는 0부터 9까지 커지고, step = 2로 설정하면 두칸씩 점프할 수 있다. for문과 앞서배운 if else문을 합쳐보자. 

마찬가지로 i는 0, 1, 2, ..., 9 까지 순차적으로 커지게 되는데, 이때 i를 2로 나누었을때 나머지가 0이라면 짝수이므로 출력하고, 그렇지 않다면 continue를 입력하여 바로 다음 i로 넘어갈 수 있다. 

 

Continue와 break

여기서 continue에 대해서 잠깐 짚고 넘어가도록 하자. 반복문에서 continue를 만나면 아래에 있는 실행해야할 모든 문장들을 건너 뛰고, 다음 i로 넘어가 반복을 계속한다. 

 

유사한 기능으로 break가 있는데, 반복문에서 break를 만나게 되면 아예 해당 반복문을 종료하게 된다. 

 

for문의 활용

또한 위의 range를 이용한 for문 외에도, 여러 방식으로 for문을 사용할 수 있다. 예를 들어 list 안에 있는 모든 원소들에 대해 반복문을 수행하고 싶을때에는 다음과 같이 한다. 

이렇게 하면 list num에 있는 각 요소들을 순차적으로 item에 불러올 수 있다. list 뿐만 아니라 순회가 가능한 모든 데이터 타입을 사용해서 같은 방식으로 이용할 수 있다. 하지만 위의 방식으로는 원소 1이 몇번째 인덱스에서 온 정보인지 바로 알기가 어렵고, 이를 위해 사용하는 것이 enumerate 함수이다. 

 

Enumerate

enumerate은 기본적으로 for문과 비슷하게 사용할 수 있다. 바로 예제를 통해 알아보자. 

 

enumerate 함수는 해당 요소의 인덱스와 그 값을 튜플의 형태로 () 로 감싸서 반환해준다. 즉, 이를 분리해서 받아주면 다음과 같이 유용하게 쓸 수 있다.

이렇게 2가지 변수 idx, name으로 받아주면 쉽게 관리할 수 있다. 

 

여기까지 for문에 대해 알아보았다. 다음시간에는 while문을 다뤄보자!

 

예제 문제

https://www.acmicpc.net/problem/2443

 

2443번: 별 찍기 - 6

첫째 줄에는 별 2×N-1개, 둘째 줄에는 별 2×N-3개, ..., N번째 줄에는 별 1개를 찍는 문제 별은 가운데를 기준으로 대칭이어야 한다.

www.acmicpc.net

https://www.acmicpc.net/problem/1252

 

1252번: 이진수 덧셈

첫째 줄에 두 개의 이진수가 빈 칸을 사이에 두고 주어진다. 각 이진수는 1 또는 0으로만 이루어져 있으며, 0으로 시작할 수도 있다. 또한 각 이진수의 길이는 80을 넘지 않는다.

www.acmicpc.net

https://www.acmicpc.net/problem/1157

 

1157번: 단어 공부

알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.

www.acmicpc.net

 

반응형