[TIL] For / While Loops

Hailee·2020년 11월 23일
0

[ TIL ]

목록 보기
18/40
post-thumbnail

For Loops

if문 만으로는 해결할수 없을 때?

  • 실행하는 기능은 동일하고 요소의 index만 다를 때!
  • 반복해야하는 list의 총 길이를 알지 못할 때!
    👉🏻 For loops 사용!

For 반복문

  • list, tuple, set 및 다른 자료구조의 요소를 한번에 하나씩 가지고
    원하는 로직을 실행하도록 해줌
for element in list:
    do_something_with_element

: list의 요소를 한번에 한개씩 가지고 for문 내 코드를 실행한다

  • if문 👇🏻
my_list = [int(s) for s in input().split()]


## 아직 for loop을 배우지 않았으므로 if 문을 사용해서 해결.
if (my_list[4] % 2) == 1:
  del my_list[4]


if (my_list[3] % 2) == 1:
  del my_list[3]


if (my_list[2] % 2) == 1:
  del my_list[2]


if (my_list[1] % 2) == 1:
  del my_list[1]
  
if (my_list[0] % 2) == 1:
  del my_list[0]
  
print(my_list)
  • for문 👇🏻
my_list     = [int(s) for s in input().split()]
odd_numbers = [ ]


## 먼저 홀수값들을 골라내서 리스트를 만들고
for element in my_list:
    if (element % 2) == 1:
        odd_numbers.append(element)


## 홀수값들을 하나 하나 기존 리스트에서 지워준다
for odd_number in odd_numbers:
    my_list.remove(odd_number)


print(my_list)

for문으로 표현하면 훨씬 간결하게 표현할 수 있다!
오히려 for문을 알고나니, if문 만으로 문제를 푸는게 더 힘들었다

Break

  • iteration: list가 가지고있는 요소의 수 만큼 for loops내 코드 실행하는 것
  • 끝까지 갈 필요 없이, 도중에 그만두고 싶을 때! 👉🏻 Break문 사용해주기

Break

  • 도중하차 하고싶을 때
  • for문을 끝까지 진행할 필요 없이, 중간에서 멈추고 싶을 때 사용!
  • break문이 실행되면, 다음 iteration으로 넘어가지 않고 for문에서 빠져나오게 된다

Continue

Continue

  • break 급으로 완전히 빠져나오고 싶지는 않지만 다음 요소,
    다음 iteration으로 넘어가고 싶을 때 continue문 사용

Nested For Loops

  • if문과 마찬가지로, 중첩된 for 반복문!
  • 구구단 문제를 풀 때, 반복된 작업을 할 때 필요!
    : ex) 년도별로 일어난 일들을 출력할 때,
    년도별로(큰 for문) 일어난 일들(작은 for문) 순으로 반복 실행
numbers1 = [1, 2, 3, 4, 5]
numbers2 = [10, 20, 30, 40, 50]
-
for num1 in numbers1:
    for num2 in numbers2:
        print(f"{num1} * {num2} == {num1 * num2}")

range

range

for in range(start_value, end_value, step)
  • 시작 조건, 종료조건, 스텝(생략 가능)
  • 옵셔널 인자 step을 사용해서 반복문의 증가 폭 조절 가능하다
  • range 사용 X
our_list = [];
for i in range(0, 5):
  our_list.append(i)
- 결과
[0,1,2,3,4]
  • range 사용
our_list = []
for i in range(0, 10, 2):
  our_list.append(i)
- 결과
[0,2,4,6,8]
  • count backwards
our_list = []
for i in range(10, 0, -2):
  our_list.append(i)
- 결과
[10,8,6,4,2]

👇🏻 '그'회사에서 썼던 코드 마치 java, javascript는 i+=2 이런식으로 증가하여 반복하도록 했던 것처럼 python은 range로 조절하는 것 같다


While Loops

For

  • list, set, dictionary 등 data structure 등을 기반으로 코드블록 반복
  • data structure가 아닌 상황에서 코드블록을 반복하고 싶을 땐??

while

👉🏻 특정 조건문이 True일 동안 코드블록 반복한다

  • list 같은 자료구조 없이도 반복문 실행할 수 있음!
while <조건문>:     
    <수행할 문장1>     
    <수행할 문장2>     
    <수행할 문장3>     
    ...
    <수행할 문장N>  

else

  • if문의 조건문이 False일 때 else문이 실행되었던 것처럼, while문의 조건이 False일 경우 (while문이 종료되면) else문 실행!
while <조건문>:
    <수행할 문장1>     
    <수행할 문장2>     
    <수행할 문장3>     
    ...
    <수행할 문장N> 
else:
    <while문이 종료된  수행할 문장1>     
    <while문이 종료된  수행할 문장2>     
    <while문이 종료된  수행할 문장3>     
    ...
    <while문이 종료된  수행할 문장N> 

예를 들면 👇🏻👇🏻 while문이 종료되고 난 뒤 number 변수의 값 출력 가능하다

python
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

Looping Dictionary

key로 값 읽어들이기

  • list와 다르게, dictionary는 각 요소가 key, value로되어있다
  • dictionary를 사용한 for 반복문에서는 key만 리턴을 하고,
    해당 key를 가지고 값을 읽어들인다

value로 값 읽어들이기

  • Dictionary의 values라는 함수를 속성으로 가지는데, 이는 value들을 리턴한다.
  • 이를 사용하면 key값 대신 value 값들을 가지고 반복 로직 실행할 수 있다.

key, value 둘 다 - items 함수

  • items 함수는 key, value 둘 다 사용하여 반복구문 실행
  • key, value를 tuple로 리턴하여 2개의 값을 동시에 받을 수 있다
profile
웹 개발 🐷😎👊🏻🔥

0개의 댓글