[Basic] 조건문/반복문 정리

고보·2024년 1월 16일

1 조건문(if, elif, else)

  • if True 이면 그쪽으로 빠짐
  • elif if를 여러 개로 사용 가능. => 순서 유의
  • else if, elif 모두 False일 경우
  • 활용 방법
    • 변수가 null인지 if var: 값이 있으면 True

2 for 반복문

  • for <변수명> in <iterable>:
    • <'iterable'>이 끝날 때까지 하나씩 <변수명>에 넣어서 아래의 반복 코드를 반복
    • for <변수명> in reversed(<iterable>): 역순으로
  • iterable: 여러 개 요소로 구성되어 한 번에 하나씩 돌려줄 수 있는 객체.
    • str, list, tuple, range, dictionary 등
  • range(시작, 끝, 증감크기)
    • 시작은 0 디폴트, 증감크기는 1 디폴트로 생략 가능
    • 슬라이스와 차이점: [ : ] vs ( , )
    • 리스트와 차이점: range는 필요할 때 생성해서 반환
    • 증감크기 -도 가능. 이 경우도 끝은 미만(즉, 5, 3, -1이면 5, 4가 들어간다)
  • 2개 이상 변수 넣기
    • zip(iterable1, iterable2, ...): 여러 개의 iterable을 튜플로 순서대로 묶는 것
      • ex)dict(zip(list1, list2)): 리스트 둘을 순서대로 페어로 묶어 딕셔너리로 / list로 하면 페어튜플의 리스트가 됨
      • 다시 풀기: a, b = zip(*묶은 변수) 다시 2개의 튜플로
      • ex) for a, b, c in zip(iterable1, iterable2, iterable3)
    • for i, j in enumerate(iterable) -> i에는 0부터 숫자, j에는 iterable 하나씩 해서 tuple로 페어. for j in range(), i = index[j]를 요약한 것. , start = 0 으로 카운트 시작 지정 가능.
      • ex) for i in enumerate(list1) => prin(i)를 하면 (0, list1[0]), ... 이 순서대로 나온다.
      • tuple로 안하려면 i 대신 2개의 변수를 넣으면 각각 들어간다.
      • 시작 인덱스를 바꾸려면 마지막에 ,start = 숫자 를 추가
  • 활용 예시
    • for문으로 시퀀스 객체 인덱스 루프

3 while 반복문

  • while <조건식>:
    • 조건식이 True인 동안 반복
  • break문: for, while에서 특정 조건(if) 등으로 넣어놓고, 이 break를 만나면 반복문이 끝나고 아예 빠져나간다
  • continue문: for, while에서 특정 조건(if) 등으로 넣어놓고, 이 continue를 만나면 아래 과정 모두 생략하고 다시 상위 반복문으로 돌아간다

4 List comprehension

  • 변수 = [<표현식> for <변수> in <'iterable'>]
    • <'iterable'> 값 하나를 <변수>에 담고 -> 그걸 <표현식>에 실행 -> 그 결과값을 리스트에 추가 -> <'iterable'>이 없어질 때까지 반복
    • 리스트만이 아니라 dict에도 사용 가능.
    • ex)
      ''.join(i*n for i in my_string)
      list1 = index[i] - index[i-1] for i in range(1, len(list2))
  • for에 if, else 등 이용 가능
    • 변수 = [<표현식> for <변수> in <'iterable'> if <조건식>]
      변수 = [표현식1 if 조건식 else 표현식2 for 변수 in iterable]
    • 위의 동작에서 <변수>를 <조건식>에 넣었을 때 True면 <표현식> 실행
  • for문을 여러 개 반복 가능(좌부터 우로 연산 순서가 이뤄진다. 일반적으로 썼을 때 위에서 아래로 가고 들여써지는 것처럼) -> 가독성 안좋으니 적당히 하자
profile
일본에서 일하는 게임 기획자. 시시해서 죽어버리지 않게, 재밌고 의미 있는 컨텐츠에 관심 있습니다. 그 도구로 데이터, AI도 찝적댑니다.

0개의 댓글