[TIL]Python. For loops & While
for & While 반복문
for 반복문(loops)이란?
쉽게 말하면 컴퓨터에 반복을 지시하는 방법을 말함. 같은 코드를 붙여넣기하는건 비효율적이라 이때 사용하는 for구문을 사용한다
For 반복자 in 반복할수 있는것:
코드
(반복할 수 있는 것에는 문자열, 리스트, 딕셔너리, 범위 등이 있음)
for 구문에서는 리스트가 가지고 있는 요소의 수 만큼 for 구문에 속해있는 코드를 실행한다. 이를 iteration이라고 함(5개의 요소를 가지고 있으면 5 iterations라고 함)
While 반복문(Loops)이란?
for 은 list나 set, dictionary 등의 data structure 등을 기반으로 되는데
가끔은 list같은 data structure 기반이 아니더라도 범용적으로 코드블록을 반복해야 할 때가 있음.
이럴 경우 while 반복문을 사용한다.
while 구문은 특정 조건문이 True일동안 코드블록을 반복 실행 한다
while <조건문>:
<수행할 문장1>
<수행할 문장2>
<수행할 문장3>
...
<수행할 문장N>
While Else
파이썬의 while문은 else 문이 추가 되는 경우가 있음(if문의 else문과 유사)
While문의 else 문도 while의 조건문이 False 이면 실행됩니다.
number = 0
while number <= 10:
print(number) number += 1
else:
print(f"while 문이 끝나고 난 후 의 number : {number}")
0 1 2 3 4 5 6 7 8 9 10 while 문이 끝나고 난 후 의 number : 11.
For/While 언제 사용하는게 좋을까?
<for문을 사용하는 경우>
반복횟수가 정해진 경우(주로 배열과 함께 많이 사용)
sum=0;
for(let i=0; i<10; i++){
sum +=i;
}
<while문을 사용하는 경우>
무한루프나 특정 조건에 만족할 때까지 반복해야 하는 경우(주로 파일을 읽고 쓰기에 많이 사용)
sum=0;
i=1;
while(i<=10){
sum +=i;
i++
}
Break & Continue(for, while둘다 OK)
반복문 내부에서만 사용할 수 있는 키워드로 Break/Continue가 있다
1.Break
끝까지 for/while 구문을 진행할 필요 없이 중간에서 반복문을 벗어나고 싶을때 사용하는 키워드. 보통 무한 반복문을 만들고, 내부의 반복을 벗어날때 많이 사용.
number = 0
while number <= 10:
if number == 9:
break
elif number <= 5:
number += 1
continue
else:
print(number)
number += 1
> 6
7
8
2.Continue
만일 break처럼 for/while 구문에서 완전히 빠져 나오고 싶지는 않지만 다음 요소, 즉 다음 interation으로 넘어가고 싶을 때 continue 문을 사용
현재 반복을 생략하고, 다음 반복으로 넘어갈 때 사용하는 키워드.
#변수를 선언
numbers = [5, 15, 6, 20, 7, 25]
#반복을 돌린다
for number in numbers:
#number 10보다 작으면 다음 반복으로 넘어갑니다.
if number < 10:
continue
#출력한다
print(number)
>>> 15
20
25
파이썬 리스트에서 중복된 값을 제거 하고 싶으면 어떻게 해야 할까?
여기에는 크게 두가지 방법이 있다.
1. set(집합)자료형을 이용
중복을 허용하지 않는 set()을 이용하여 중복을 제거할 수 있다.
my_list = ['A', 'B', 'C', 'D', 'B', 'D', 'E']
my_set = set(my_list) #집합set으로 변환
my_list = list(my_set) #list로 변환
print(new_list)
>>> ['D', 'B', 'A', 'E', 'C']
set()로 제거시 순서가 뒤죽박죽 된다는 단점이 있다.
- for문을 이용해 리스트 요소를 순회하며 중복 여부를 체크한다.
my_list의 모든 요소를 순회하며 해당 요소가 new_list에 있는지 확인한 다음 해당 요소가 존재하지 않으면 new_list에 추가한다. 반복문과 조건문을 이용한 방법으로 순서가 유지된다.
my_list = ['A', 'B', 'C', 'D', 'B', 'D', 'E']
new_list = []
for v in my_list:
if v not in new_list:
new_list.append(v)
print(new_list)
출력된 값 ['A', 'B', 'C', 'D', 'E']
2번의 경우 엄청엄청 잘 쓰이는 개념이라 꼭 이해하고 외워두는게 좋다!!
심화개념
1.Iterate with Python For Loops
반복문을 통해서 여러번 코드 수행을 할 수 있는데 대표적으로 range를 사용한 방법이 있다
For 숫자변수 in range(start_value, end_value, step)
range의 경우 시작조건, 종료조건(list처럼 마지막 값은 포함이 안됨), 스텝(생략 가능)을 쓸 수 있다. range()의 매개변수는 반드시 정수를 입력해야함(입력안할시 TypeError발생)
2.Count Backwards With a For Loop
큰 숫자에서 작은숫자로 반복문을 적용해야 하는 경우가 생기는데 이러한 반복문을 “역반복문”이라고 부름
2-1.range()함수의 매개변수를 세 개 사용
our_list = []
for i in range(10, 0, -2):
our_list.append(i)
our_list 의 결과 => [10,8,6,4,2]
2-2. Reversed() 함수를 사용하는 방법 ->주의사항이 많으므로 쪼랩은 막쓰면 안될듯
For I in reversed(range(5)):
print(“현재 반복변수: {}”.format(i))
결과는 4,3,2,1,0순으로 나온다!
Author And Source
이 문제에 관하여([TIL]Python. For loops & While), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@fhwmqkfl/TILPython.-For-loops-While저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)