Python/이것이코딩테스트다with파이썬

8~9강 :: 조건문, 반복문

묘걍 2023. 11. 2. 19:16

👉🏻 조건문

  • 조건문은 프로그램의 흐름을 제어하는 문법이다
  • 조건문을 이용해 조건에 따라서 프로그램의 로직을 설정할 수 있다.

- 대부분의 프로그램에서 필수적으로 사용되고 있다

- 어떤 변수에 들어있는 값에 따라 서로 다른 로직을 수행할 때 효과적

- 조건문에 비교 연산자를 넣어준다

- 참(True)값을 가질 때만 if(조건문)이래 있는 (들여쓰기가 되어 있는) 코드가 실행된다.

 

🧩 들여쓰기

  • 파이썬에서는 코드의 블록(Block)들여쓰기(Indent)로 지정한다.
  • 다음 코드에서 2번 라인은 무조건 실행된다

출처: 이것이 코딩 테스트다 유튜브

- 블록: 특정 기능을 수행하기 위한 한 단위의 코드 묶음

- 같은 들여쓰기를 가지는 부분이 연달아 실행되는 것

- '프로그램을 종료합니다'부분은 들여쓰기가 적용되어있지 않기 때문에 무조건 실행된다.

  • 탭을 사용하는 쪽과 공백 문자(space)를 여러 번 사용하는 쪽으로 두 진영이 있다.
    • 이에 대한 논쟁은 지금까지도 활발하다
  • 파이썬 스타일 가이드라인에서는 4개의 공백 문자를 사용하는 것을 표준으로 설정하고 있다.

🧩 조건문의 기본 형태

  • 조건문의 기본적인 형태는 if ~ elif ~ else이다.
    • 조건문을 사용할 때 elif 혹은 else 부분은 경우에 따라서 사용하지 않아도 된다.

출처: 이것이 코딩 테스트다 유튜브

- 다른 언어에서는 else if라고 씀

🎮 성적 구간에 따른 학점 출력 예제

- 성적이 90점 이상일 때: A

- 성적이 90점 미만, 80점 이상일 때: B

     - 90점 이상인지를 먼저 체크하고 그렇지 않은 것들만 내려왔기 때문에 90점 미만은 명시해주지 않아도 자동으로 적용

- 성적이 80점 미만, 70점 이상일 때: C

- 정석이 70점 미만일 때: F

 

🧩 비교 연산자

  • 비교 연산자는 특정한 두 값을 비교할 때 이용할 수 있다.
    • 대입 연산자(=)와 같음 연산자(==)의 차이점에 유의하기

출처: 이것이 코딩 테스트다 유튜브

🧩 논리 연산자

  • 논리 연산자는 논리 값(True/False) 사이의 연산을 수행할 때 사용한다.

출처: 이것이 코딩 테스트다 유튜브

- 다른 언어에서는 !, && 등을 사용하지만 파이썬은 단어를 입력하여 직관적이다.

* or

- 둘 중 하나 이상이 True 값을 가지기 때문에 Yes가 출력되었다

* and

- 둘 다 True값을 가져야 Yes가 출력되는데 하나가 True가 아니기 때문에 아무것도 출력되지 않는다

 

🧩 파이썬의 기타 연산자

  • 다수의 데이터를 담는 자료형을 위해 in 연산자와 not in 연산자가 제공된다.
    • 리스트, 튜플, 문자열, 딕셔너리 모두에서 사용이 가능하다

출처: 이것이 코딩 테스트다 유튜브

- 단순히 어딘가에 포함되어 있는지 포함되어 있지 않은지 체크하기 위해

 

🧩 파이썬의 pass 키워드

  • 아무것도 처리하고 싶지 않을 때 pass 키워드를 사용한다.
  • Ex. 디버깅 과정에서 일단 조건문의 형태만 만들어 놓고 조건문을 처리하는 부분은 비워놓고 싶은 경우

- 특정한 소스코드 라인을 아무것도 처리하지 않고 넘어가고 싶을 때

- 디버깅 과정(= 어떠한 프로그램 동작을 검증하는 과정)에서 많이 사용

- 아무 내용도 적지 않으면 오류가 난다

 

🧩 조건문의 간소화

  • 조건문에서 실행될 소스코드가 한 줄인 경우, 굳이 줄 바꿈을 하지 않고도 간략하게 표현할 수 있다.

  • 조건부 표현식(Conditional Expression)은 if ~ else 문을 한 줄에 작서알 수 있도록 해준다.

- if가 중간에 들어간다

- 참일 때 왼쪽, 거짓일 때 오른쪽이 실행된다

 

🧩 파이썬 조건문 내에서의 부등식

  • 다른 프로그래밍 언어와 다르게 파이썬은 조건문 안에서 수학의 부등식을 그대로 사용할 수 있다.
  • Ex. x > 0 and x < 20 과 0 < x < 20은 같은 결과를 반환한다

- 같은 결과를 반환한다.

* C언어로 했을 경우

출처: 강사님 화면

- 논리식이 항상 참이라 25를 넣어도 0 ~ 20 사이의 수라고 나온다

- 다른 언어에서는 조건 연산자가 반복되어 사용되면 순차적으로 처리한다

      - 먼저 0 < x 를 판단 → True = 1

      - 1 < 20을 판단 → True

      - 그래서 항상 True

 

 


👉🏻 반복문

  • 특정한 소스코드를 반복적으로 실행하고자 할 때 사용하는 문법이다
  • 파이썬에서는 while문과 for문이 있는데, 어떤 것을 사용해도 상관 없다
    • 다만 코딩 테스트에서의 실제 사용 예시를 확인해보면 for문이 더 간결한 경우가 많다

✅ while문

- 특정 조건을 만족할 때 어떤 코드를 실행하고자할 때

- i의 값을 증가시켜주어 1 → 2 → ... 9까지 늘어남

     - 10이 되면 반복문을 벗어남

- 홀수일 때만 result에 더해줌

🧩 반복문에서의 무한 루프

  • 무한 루프(Infinite Loop)란 끊임없이 반복되는 반복 구문을 의미한다
    • 코딩 테스트에서 무한 루프를 구현할 일은 거의 없으니 유의해야 한다
    • 반복문을 작성한 뒤에는 항상 반복문을 탈출할 수 있는지 확인해야 한다

계속 10이 나오는 중

- x를 증가시키거나 감소시키는 구문이 전혀 없음

 

🧩 반복문: for문

  • 반복문으로 for문을 이용할 수도 있다
  • for문의 구조는 다음과 같은데, 특정한 변수를 이용하여 'in'뒤에 오는 데이터(리스트, 튜플 등)에 포함되어 있는 원소를 첫 번째 인덱스부터 차례대로 하나씩 방문한다

출처: 이것이 코딩테스트다 유튜브

  • for문에서 연속적인 값을 차례대로 순회할 때는 range()를 주로 사용한다
    • 이때 range(시작 값, 끝 값 +1) 형태로 사용한다
    • 인자를 하나만 넣으면 자동으로 시작 값은 0이 된다

🧩 파이썬의 continue 키워드

  • 반복문에서 남은 코드의 실행을 건너뛰고, 다음 반복을 진행하고자 할 때 continue를 사용한다
  • 1부터 9까지의 홀수의 합을 구할 때 다음과 같이 작성할 수 있다.

- 짝수일 때는 건너뛰고 홀수일 때만 해당 값을 result에 더해주는 것

🧩 파이썬의 break 키워드

  • 반복문을 즉시 탈출하고자 할 때 break를 사용한다
  • 1부터 5까지의 정수를 차례대로 출력하고자 할 때 다음과 같이 작성할 수 있다

🎮 학생들의 합격 여부 판단 예제 1) 점수가 80점만 넘으면 합격

🎮 학생들의 합격 여부 판단 예제 2) 특정 번호의 학생은 제외하기

🎮 중첩된 반복문: 구구단 예제

 

 

 

 

 

 

 

 

출처:  https://youtu.be/PCJOT5LHzxE?si=eHhrr4_6ijmn9aC5

https://youtu.be/x7dIUaefI0A?si=D1eelNw-K-1O6Hem