본문 바로가기

교육 노트/파이썬 강의

[파이썬 때려잡기] Python 강의 14 - 반복문 for문

2018/09/04 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 1 - Hello World!

2018/09/04 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 2 - 변수와 자료형, 연산자

2018/09/05 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 3 - 파이썬의 자료구조, 리스트 (list)

2018/09/05 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 4 - 파이썬의 스트링 (string)

2018/09/05 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 5 - 스트링과 리스트 처리-1

2018/09/05 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 6 - 스트링과 리스트 처리-2

2018/09/05 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 7 - 튜플 (tuple)

2018/09/05 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 8 - 딕셔너리 (Dictionary)

2018/09/08 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 9 - 집합 (set)

2018/09/08 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 10 - 사용자 입출력

2018/09/09 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 11 - 변수와 메모리

2018/09/09 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 12 - 조건과 조건문(분기문)

2018/09/09 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 13 - 반복문 while문

while문의 경우 조건을 검사하여 반복을 진행하는 반복문이다.

그렇다면 리스트나 튜플, 문자열등을 처음부터 끝까지 순회 하려면 어떻게 해야할까


x = [3,3,2,2,1,1]

count = 0

while count < len(x):
print(x[count])
count += 1


3
3
2
2
1
1


과같이 인덱스를 이용하여 처음부터 끝까지 접근하면된다.

그러나 while 문으로 리스트를 순회하려면

기본적으로 조건을 직접 생각해서 돌아가도록 해주어야 한다는것인데

이것이 귀찮고 실수를 유발하기 쉽다.


그래서 나온것이 for문이다


1. for문

for target_list in expression_list:
<내용>

for문은 expression_list (리스트, 튜플, 문자열)의 요소가 순서대로 target_list에 들어간뒤 <내용> 이 수행된다.


x = [3,3,2,2,1,1]

for item in x:
print(item)


3
3
2
2
1
1

x라는 리스트에있는 요소가 x[0]의 값이 item에 들어가고 for이 한번 끝나면 x[1]이 들어가고 ... 해서 x의 마지막 요소까지 순회하게 된다.


2. break, continue

while문과 동일


3. range함수

프로그래밍을 하다보면 0~10 까지 반복, 또는 10~20까지 반복 등을 구현해야할 때가 생긴다 (예를 들어 구구단)

이를 하기위해 변수를 두고 while문을 돌려도 되고

for문으로 하고싶다면

x = [1,2,3,4,5,6,7,8,9]

for item in x:
print (item)

이런식으로 순회할 리스트를 만들어서 사용하면되는데

만약 0~100 인경우 x = [0,1,2,3 .... 100] 을 만들어주고

1000까지면 1000까지... 어휴 생각만 해도 귀찮은 작업이다


그래서 파이썬은 range함수를 제공해준다

for item in range(10):
print (item)


0
1
2
3
4
5
6
7
8
9

range(stop) 는 0부터 stop미만까지 (stop-1)까지 돌수있도록 만들어준다

for item in range(4,10):
print (item)


4
5
6
7
8
9

range(start,stop)로 시작위치를 정해줄수있다.

range의 작동원리는 지금 설명하기는 힘든데 암튼 걍 이렇게 쓰면된다.



4. list comprehension (리스트 내포)

리스트안에 for문이나if문을 포함시킬수 있다

무슨의미냐하면


x = [1,2,3,4]

y = [i*3 for i in x]
z = [i for i in x if i%2 == 0]

print (y)
print (z)


[3, 6, 9, 12]
[2, 4]

y는  x리스트의 i요소에 3을 곱한것으로 list를 만들어라

z는 x리스트의 i요소에 2로 나누었을때 나머지가 0인 요소로 list를 만들어라


이런식이다.

직관적이고 깔끔하게 리스트를 구성할수있다.




지금까지 for if while문을 배웠다

for if while문만 알면 시간만 주어진다면야 거의 모든 프로그램을 짤수 있다고 볼수있다.

따라서 if for while등을 활용하여 다양한 프로그램을 작성할수있다.

다음과 같은 문제들을 해결해 보자



1. 별찍기 문제


다음과 같이 *을 이용하여 콘솔창에 각종 삼각형, 사각형을 찍어보자



2. 숫자를 입력하면 해당 숫자의 구구단을 출력해보자

-1을 입력할때까지 반복하게 실행되도록 해보자.



728x90