저번 포스팅까지는 파이썬의 기본에 해당하는 함수와

코딩을 학습했다면 이번 포스팅에서는

for, while 반복문을 작성해볼 예정이다.

전에 학습하면서 for,while 초반까지는 괜찮았는데

코드가 길어지고 복잡해지면서 어려워했던 기억이 있다.

그렇게 안되길 바라면서...

이번에도 초장에 확실이 잡고 넘어갈 예정이다.


 

[for, while 반복문]

 

 

전 포스팅에서 위와 같이 일일이 나누는 작업을 했다.

작업이 필요한 인수가 적을 땐 괜찮지만

인수가 많아질수록 효율적이지 못한 코드가 된다.

for, while반복문은 이럴 때 사용하는 코드다.

 

위와 같이 분리한 문자열을 넣어줄 리스트를 만들어주고

i라는 변수를 새로 만들어준다.

range(0,3)은 i라는 변수에 들어갈 숫자고

앞으로 작성할 코드의 i에 0,1,2 가 들어갈 예정이다.

코드가 다 같지만 split_list에 변수 i가 들어가고

split_list에 인수 3개가 있기 때문에 순서대로 반환된다.

 

만약, i에 넣고자 하는 수의 크기가 i의 범위보다 작다면

오류가 발생하므로 주의하자.

즉, 사진과 같이 반환을 원하는 인수의 개수가 3인데

range(0,3) 대신 (0,4)를 입력한다면 오류가 발생한다.

 

"While"

while은 for과 거의 동일하지만

for은 범위만 정해주면 출력이 되지만

while은 출력전에 조건 코드를 추가로 입력해주면서

사용자가 입력한 조건에 따라 반복하게 된다.

 

위 결과는 for과 반복문을 사용하지 않은 코드와 동일함.

하지만 i = i+1에서 확인할 수 있듯

i변수에 대한 특정 조건을 걸어줄 수 있다.

for은 i에 무조건 1단위로 증가하는 수를 넣었다면

while은 위와 같이 순서대로 증가하게 할 수 있고

짝수번째로 증가하게 할 수 있다.

혹은 i의 범위를 정해줬지만

if조건문을 사용해 강제 정지 시켜줄 수도 있다. (break)

[enumerate]

 

enumerate는 인덱스(위치)까지 알려주는 메서드이다.

for과 같이 쓰이면 성능이 강화되는 특징을 가지고 있다.

이 코드는 split_list를 enumerate해서

새로운 리스트에 담아달라는 뜻이다.

list로 감싸주지 않아도 오류나지는 않지만

원하는 결과가 나오지 않는다.

반환값은 (index, vaule) 형태로

즉, 튜플의 형태로 출력된다.

 

위에서 enumerate는 for반복문과 같이 쓰이면

그 쓰임새가 배가 된다고 했다. 예를들어,

이런 코드가 있다고 가정하자. 읽어보면

enumerate한 split_list에 있는 index, value가 있고

이것을 index별로 value를 strip해서 출력해줘.

가 된다. 그러면 오른쪽과 같은 결과를 얻게 된다.

cf) 여기서 vaule를 빼게 되면 오류가 난다.

이유는 튜플 타입이기 때문이다.

(위에 음영처리 참고)

 

그리고 이 코드를 출력하면

new_list4라는 빈 리스트를 만들어주고

new_list4에 strip한 value를 추가해줘 가 된다.

그리고 출력해보면

['apple', 'banna', 'kiwi] 로 출력되는 것을 알 수 있다.

 

[list comprehension]

list comprehension은 익숙해진다면 정말 편한 함수다

이 함수 전까지는 전부 새로운 리스트를 만들고

담아주는 과정을 거쳤다면, 이 함수는 바로 넣을 수 있다

(=한줄에 작성 가능 = 효율적인 코드)

이 코드를 보면 새로운 리스트를 만들어줌과 동시에

바로 코딩해서 결과를 출력할 수 있다.

(어렵게 생각하지말고 영어 읽는거마냥 읽어주자)

+ fruit은 임의로 만들어준 변수다. 다른 단어로 대체 가능!

읽어보면 fruit을 strip해줘, 그 fruit은

split_list에 있는 fruit들이야 정도로 해석하고 이해하자

그럼 동일하게 ['apple', 'banna', 'kiwi] 출력된다.

 


이번 포스팅에서는

반복문과 인덱싱을 활용한 반복문을 학습했다.

대학 수강과목으로 공부했을 때 꽤 애먹었던 부분이다.

처음에 간단한 코드로 짤 땐 쉬워보였지만

조금 복잡해질 수록 어려웠던 함수였다.

 

 

 

 

 

 

https://mcode.co.kr/

 

메타코드M

빅데이터 , AI 강의 플랫폼 & IT 현직자 모임 플랫폼ㅣ메타코드 커뮤니티 일원이 되시기 바랍니다.

mcode.co.kr

 

https://www.youtube.com/@mcodeM

 

메타코드M

🔥강의 / 커뮤니티에 참여해 보세요!🔥 https://mcode.co.kr ⚡️강의 플랫폼 (1) 빅데이터 자격증 강의 - 빅데이터 분석기사 / SQLD / ADsP (2) 데이터분석 입문/실습 강의 (3) AI 개발/이론 강의 (4) ChatGPT

www.youtube.com

(메타코드M의 서포터즈 활동으로

강의 수강권을 제공받아 쓰는 글

입니다.)

BELATED ARTICLES

more