본문 바로가기

Programming/Python

[파이썬 프로그래밍] 23화 for문

[파이썬 프로그래밍] 23화 for문 





 난 시간에는 제어문을 살펴보았습니다. if 문으로 조건이 참일 경우 명령을 수행하고,

if 와 else 의 조합으로 조건이 거짓일 경우에는 수행하는 명령의 형태을 알아보았지만


또한 c언어에서 else if 등으로 표시되는 것을 python 에서는 elif 로 표기해서 사용한다고 했습니다.

이렇게 하면 다중 if문을 수행하게 할 수 있지요.



이번 시간에는 조건문과 더불어 필수로 익혀야 하는 프로그래밍 패턴중 하나인 , 반복문에 대해서

배워보도록 하겠습니다. 반복문 중에서도 for문을 집중적을 다뤄보죠.


반복문까지도 거의 필수적으로 알아야 하는 만큼 확실히 자기것으로 만드는 것이 중요 합니다.

함수를 진도를 먼저나갔기 떄문에 함수복습겸 함수와 반복문, 조건문의 조합으로 재밌는 프로그램도

만들어 보시는 것도 좋다고 생각 합니다. 




for문 사용하기



1. range

위의 예제를 보시면, range 라고 쓰인것이 보입니다.

range는 범위를 나타내는 말로서 가로안에, 시작과 끝의 범위를

적어줍니다.위에서 범위를 0,5 라고 정의 했으니

시작은 0 이되며, 끝은 5가 됩니다.

0 , 1, 2 ,3 ,4 이렇게 총 5개가 되는 것이죠.



2. in

그 다음으로 in이라는 것이 보이는데 

리스트,사전,튜플 내에서 원하는 인자가 있는지 검사하는데 사용 됩니다.




3. for 문의 구조

for <변수> in <객체>:

<문장> 



예제해석:  자, 먼저 스스로 해석해 보시는 습관이 중요 합니다.

해석해 보세요 ㅎㅎ


그다음은 제가 해석해 보겠습니다. for 라고 정의하면서 for 루프를 선언 합니다.

i 라는 변수를 만들고 in 이라고 써서  인자를 검사하는데 사용 합니다.

range 라고 범위지정을 한다고 정의 후에 가로안에 범위를 0부터 10으로 지정했습니다.


i 에 순차적으로 접근해서 값을 저장 합니다. 이후 lucky를 출력 하게 합니다.


i에 값이 담기는지 눈으로 확인 해 보려면 다음과 같이 코딩해서 확인하실 수 있습니다.






이번에는 print 로 i를 같이 넣어줘서 출력하니 range 에서 지정한 범위인 시작: 0 끝:5

실제로는 0,1,2,3,4 까지 5개 이니 숫자가 0부터 4까지 붙으면서 반복되면서 출력 합니다. 






이번에는 for 문에서 print 에 변수 값 i를 집어 넣는 형태로 출력 해보았습니다.

저렇게 %s 를 줘서 서식을 지정해서 반복할떄마다 숫자를 찍어줄수도 있습니다.





List 와 for문



itbank 라는 변수에 user1 부터 6까지를 대입합니다.

리스트를 만드는 거죠. 저렇게 만든 리스트를 for문으로 출력 해주면 위와 같이

각 리스트들의 목록이 출력 되는 형태 입니다. 이렇게 이미 생성된 리스트를 재활용

할수 있는것이죠.


for문에 대한 다양한 접근방법으로 이해도를 높일 수 있습니다.





for 문 예제




위의 코드를 해석해 봅니다.


1. 첫번쨰 줄에서 BOB_2th 라는 변수에 'web_hacking', 'system_hacking', 'network_hacking' 이라는 값을 

가진 리스트를 생성 합니다


2. for문으로 BOB_2th 리스트를 돌려줍니다.

print(i)를 세번 써줍니다.


3. 결과적으로 BOB_2th 라는 리스트에 담긴 값들이 각각 3번씩 출력 되는 형태로 나옵니다.

이는 for문에서 리스트 'BOB_2th' 가 루프를 돌면서 변수 i에 각 항목이 할당 됩니다. 이를 출력을

3번 하기로 했으니 3번씩 각각 나오는 것입니다.


자, 이번에는 조금 더 복잡한 for문 작성하면서 for문에 대한 깊은 이해를 가져보도록 하겠습니다.





다중 for 문


다중 for문도 언뜻 보기엔 복잡해 보이지만 , 사실 별거 아닙니다.

위의 예제를 이해하시고 몇번 쓰시면 금방 자기것으로 흡수 하실 수 있으실 겁니다.


위의 예제를 해석하면 BOB_2th 리스트 생성후에 for문 으로 반복해 줍니다.

그러면 BOB_2th 라는 리스트의 각 요소인, 'web_hacking' , 'systeml_hacking' , 'network_hacking'

가 각각 출력 되는 것이죠. 그런데 여기서 for문으로 j 라는 변수에 또다시 BOB_2th 라는 리스트를

대입해 줍니다.


여기서 출력화면이 헷갈리실수 있습니다. 정리해서 설명 드리죠.


리스트의 요소에 임의로 번호를 매겨 보겠습니다.

1. web_hacking

2. systeml_hacking

3. network_hacking 

입니다.


for 문이 2번이 있는데요.

첫번쨰 요소인, web_hacking 이 출력 되고  이후 2번쨰 for문 으로 

리스트의 모든 요소를 출력 하면서 'web_hacking' , 'systeml_hacking' , 'network_hacking' 이 연속으로

나옵니다. 그러니까 위에 처럼 


web_hacking이 2번 나오면서 출력되는 것이죠.

이 맥락을 이해하셨다면, 굳이 다른 부분은 일일히 해석안하셔도 이해가 가실 것입니다.