Python

이코테 : Python 문법 - 3. 조건문과 반복문

식초 2020. 11. 10. 20:09

※모든 사진과 자료의 출처는 나동빈 [이것이 취업을 위한 코딩 테스트다] 입니다

 

조건문

 

조건문은 프로그램의 흐름을 제어하는 문법이다.

조건에 따라서 프로그램의 로직 설정한다.

if 키워드를 이용한다

참일 경우 print() 안의 값 출력한다.

 

 

들여쓰기

코드의 블록을 들여쓰기로 지정한다.

블록 : 특정 기능 실행 위한 한 단위의 코드 묶음

if가 참일 경우, 같은 들여쓰기를 한 부분이 연달아 실행된다.

들여쓰기를 하지 않은 2번 부분은 무조건 실행된다.

 

표준은 4개의 스페이스 사용하는 것 추천한다.

 

 

조건문의 기본 형태

if ~ elif ~ else

경우에 따라서 elif 혹은 else 부분은 사용하지 않아도 된다.

 

 

비교 연산자

특정한 두 값을 비교할 때 이용할 수 있다.

비교 연산자 설명
X == Y 서로 같을 때 True
X != Y 서로 다를 때 True
X > Y X 클 때 True
X < Y X 작을 때 True
X >= Y X 크거나 같을 때 True
X <= Y X 작거나 같을 때 True

 

 

논리 연산자

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

논리 연산자 설명
X and Y 모두 참일 때 True
X or Y 하나만 참이어도 True
not X 거짓일 때 True

 

 

 

기타 연산자

다수의 데이터를 담는 자료형을 위해 제공된다.

리스트, 튜플, 문자열, 딕셔너리 모두 사용 가능하다.

기타 연산자 설명
X in 리스트 리스트 안에 X가 있을 때 True
X not in 문자열 문자열 안에 X가 없을 때 True

 

 

pass 키워드

아무것도 처리하고 싶지 않을 때 사용한다.

(디버깅 과정에서) 일단 조건문 형태만 만들어 놓고 조건문 처리하는 부분은 비워놓고 싶은 경우

 

조건문의 간소화

조건문에서 실행될 소스코드가 한 줄일 경우, 줄바꿈 안 하고 간략히 표현한다.

 

조건부 표현식 if ~ else문을 한 줄에 작성한다.

주의: if가 가운데에 온다.

 

 

조건문 내에서의 부등식

조건문 안에서 수학의 부등식 그대로 사용 가능하다.

파이썬에서만 x > 0 and x < 20 과  0 < x < 20 은 같은 의미이다.

이 책에서는 x > 0 and x < 20 부등식 사용한다.

 

 

 


반복문

특정한 소스코드를 반복적으로 실행하고자 할 때 사용하는 문법이다.

while문과 for문이 있다. 둘 다 사용 가능하다.

코딩테스트에서는 for문이 더 간결하다.

더보기

<1부터 9까지 모든 정수의 합 구하기>

#반복을 위한 변수 i

i = 1

result = 0

 

# i가 9보다 작거나 같을 때 아래 코드 반복 실행

while i <= 9;

    result += i

    i += 1

 

print(result)   ......45

더보기

<1부터 9까지 홀수의 합 구하기>

#반복을 위한 변수 i

i = 1

result = 0

 

# i가 9보다 작거나 같을 때 아래 코드 반복 실행

while i <= 9;

    # if문을 사용해서 홀수 일때 조건 추가

    if i % 2 == 1;

        result += i

    i += 1

 

print(result)   ......45

 

 

반복문에서 무한 루프

무한 루프란 끊임 없이 반복되는 반복 구문이다.

프로그램이 종료되지 않는다.

코딩 테스트에서는 무한루프 X

반복문 작성 뒤 항상! 반복문 탈출 가능한지 확인한다.     

더보기

x = 10

while x > 5;

    print(x)                   (출력)10 10 10 10 10 10 10 ....줄바꿈되서

 

 

반복문 : for문

특정한 변수를 이용하여 in 뒤에 오는 데이터(튜플, 리스트 등)에 포함되어 있는 원소를 첫번째 인덱스부터 차례로 하나씩 방문한다.

더보기

array = [1, 2, 3, 4, 5]

 

for X in array;

    print( X )              (출력) 1 2 3 4 5 ....줄바꿈되서

 

for문에서 연속적인 값을 차례대로 순회할 때는 range()를 주로 사용한다. 

range( 시작값, 끝값+1 ) 형태이다.

인자를 하나만 넣으면 자동으로 시작값은 0이다.

더보기

result = 0

 

# i는 1부터 9까지의 모든 값을 순회

for i in range(1, 10)

    result += i

 

print(result)             (출력) 45

 

 

continue 키워드

반복문에서 남은 코드의 실행을 건너뛰고, 다음 반복을 진행하고자 할 때 사용한다.

더보기

result = 0 

for i in range(1, 10);

    if i % 2 == 0;  # 짝수일 때는 뒤부분 건너 뛴다

        continue 

    result += i

 

print( result )             (출력) 25

 

 

break 키워드

반복문을 즉시 탈출하고자 할 때 break 사용한다.

더보기

i = 1

while True;  # 무조건 반복문이 실행하게 만들었다.

    print( "현재 i의 값:", i )

    if i == 5;  # i가 5 되었을 때 탈출한다.

        break

    i += 1

 

(출력) 

현재 i의 값 : 1

현재 i의 값 : 2

현재 i의 값 : 3

현재 i의 값 : 4

현재 i의 값 : 5

 

 

더보기

합격 여부 판단 예제 1) 점수가 80점만 넘으면 합격

score = [90, 85, 77, 65, 97]

 

for i in range(5);      # i를 0~4까지 증가시키면서 각각의 인덱스에 접근한다

    if scores[ i ] >=80;

        print( i+1, "번 학생은 합격입니다." )

더보기

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

score = [90, 85, 77, 65, 97]

cheating_student_list = { 2, 4 }  #변수에 별도로 번호값 저장

 

for i in range(5);

    if i +1 in cheating_student_list;   #특정 값의 학생들은 제외한다, 바로 다음 번호로 넘어간다

        continue

    if scores[ i ] >= 80;

        print( i+1, "번 학생은 합격입니다." )

 

 

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

i가 2~9까지 반복될 동안

j가 1~9까지 내부적으로 반복된다.

총 72번 출력된다.

더보기

for i in range( 2, 10 );

    for j in range( 1,10 );

        print( i, "X", j, "=", i*j )

    print()