Python

파이썬을 배워보자!(반복문for문)

25G 2021. 4. 10. 17:41

네! 이번에는 저번 글과 연결된 반복문에 대하여 말씀드릴 계획입니다!!!! 저번에 했는데 또 웬 반복문이냐고요? ㅋㅋㅋㅋ 하지만 여러분 저번에 while문을 해보신 분은 잘 아시겠지만 조금 불편하지 않으셨나요?? while문은 조건이 참일 때까진 무한하게 반복되는 반복문 이기 때문에 자칫 잘못해서 조건식을 잘 못 짜는 바람에 무한하게 반복되는 반복문을 만드실 수도 있어요! 뫼비우스의 띠처럼 무한하게 그 소스코드 뭉치들을 반복하는 것이죠! 그게 한두 줄짜리 소스코드라면 괜찮을지 몰라도 많약에 100줄 정도 되는 while문이었다면?? 만약에 그렇게 프로그램을 실행시켜놓고 무한하게 반복되도록 프로그램을 놔두고 여러분이 잠시 다른 일 하러 갔다 오시다간 여러분의 cpu에 엄청나게 무리가 오겠죠?! 

그래서 while문 같은 경우엔 꼭 이 반복문이 끝날수 있는지 꼭꼭 확인하며 소스코드를 작성해야 한답니다

 

그래서 무한히 반복하다 어떠한 조건이나 조건문을 만나서 반복문을 빠져나가는 경우가 아니라 

끝이 정해져있는 반복문을 만들어야 한다면?! 예를 들면 저번에 했던 열 번 찍어 안 넘어가는 나무가 없다!라는 반복문을 만들어야 하는 경우라면?! 끝이 분명하게 정해져 있죠? 그럴 땐 for문을 활용하시면 좀 더 효율적이고 가독성도 좋은 소스코드를 작성하실 수 있으실 겁니다 

그럼 for문이 뭔지 바로 보시죠!!

 

for 변수 in 시퀀스 객체:

      코드1

       코드 2

~~~ 

이런 형식의 문법을 갖추고 있습니다 이해를 돕기 위해 아래의 사진을 보시죠

 

위 소스코드는 어떻게 실행될까요?!! 

항상 저는 어렵거나 처음 보는 소스코드가 있으면 차분하게 위에서 아래로 한줄한줄 읽어나가며 제어가 어떻게 이동하는지 눈이 아닌 손으로 그려본답니다! 저만의 소소한 팁이랄까요? 공부하다 보니 요령만 느는구먼요 ㅋㅋㅋㅋㅋㅋ

하지만 제 선생님께서 알려주신 방법이니 여러분도 도움되실 거라 믿습니다!!.

 

위에 simpleList에 문자열 리스트가 3개 저장되어있죠?! 그럼 0번 인덱스에 "one"1번 인덱스에"two"2번 인덱스에"three"가 들어 있을 것입니다! 

그리고 제어가 3번으로 내려가 for문을 만나게 되죠 3번 소스코드를 해석하자면!

i라는 변수에 simpleList를 차례대로 저장을 하겠다가 됩니다! 

좀 더 깊게 이 원리를 말씀드리자면 "in"을 기준으로 우변에 있는 값이 좌변에 할당되는 구조이죠

 

간단한 소스코드이니 직접 입력해 보시면 좀 더 잘 이해되실 겁니다!!!

 

그럼 바로 연속해서 for문과 연관성이 깊은 range에 대해서 말씀드리고 마무리하도록 해보죠

 

위 소스코드를 보면 condition이라는 변수에 range(1,11)이 담겨 있죠?? 간단합니다 range에 괄호 안에 0번째 인덱스에 있는 값을 시작 값이고 1번째 인덱스에 있는 값이 마지막 값입니다!

쉽게 풀어서 말씀드리자면 condition변수에 1 이상 11일 미만! 그러니까 1부터 10까지 차례대로 저장을 하겠다~라는 소스코드입니다! 그래서 이 range를 활용하면 for문을 좀 더 효율적으로 사용할 수 있으니 참고해두시면 아아주 유용하실 겁니다!

위 소스코드는 오늘 말씀드린 거에 대한 응용 예제입니다! 결과만 말씀드리면 구구단 2단을 출력하는 코드입니다!. 

위 소스코드를 위에서부터 한줄한줄 해석이 가능하시다면 제가 그리고 이 글을 읽으시는 여러분이 참 잘했다고 말씀드릴 수 있을 것 같아요!!

 

오늘도 긴 글 읽어주셔서 감사하고요! 다음에 또 봐요!~