[Python] 문법 기초 - 조건문과 반복문

조건문

  • 파이썬에선 코드의 블록(Block)을 들여쓰기(Indent)로 지정한다.
  • if ~ elif ~ else
    • 보통 else if를 쓰는데 파이썬은 줄여서 elif
  • 탭 vs 스페이스 여러번 사용? 두 진영이 나뉘어져 있음. 아직 활발히 논쟁 중.
  • 파이썬 스타일 가이드라인 : 4개의 공백 문자로 들여쓰기 하는 것을 권장.
score = 85

if score >= 70:
        print('성적이 70점 이상입니다.')
        if score >= 90:
                print('우수한 성적입니다.')
else:
        print('성적이 70점 미만입니다.')
        print('조금 더 분발하세요.')

print('프로그램을 종료합니다.')       # 이건 무조건 실행됨.

# 실행 결과
# 성적이 70점 이상입니다.
# 프로그램을 종료합니다.
  • 간소화된 조건문 (if ~ else문을 한줄에 작성할 수 있음)
score = 85 result = "Success" if score >= 80 else "Fail" print(result)

논리 연산자

  • 다른 언어와 조금 차이가 있네. 좀 더 직관적이다.
  • X and Y / X or Y / not X
a = 15

if a >= 0 and a <= 20:
        print("a는 0 이상, 20 이하의 숫자입니다.")

기타 연산자

  • in과 not in 연산자가 제공됨. (리스트, 튜플, 문자열, 딕셔너리 모두 사용 가능)
  • pass : 아무것도 처리하고 싶지 않을 때 사용 가능
  • score = 85 if score >= 80: pass # 나중에 작성할 코드 else: print('성적이 80점 미만입니다.')

 

반복문

  • while문, for문이 있는데 코테에선 for문이 더 간결한 경우가 많음.
# while문 (1 ~ 9의 정수 중에서 홀수만 더하기)
i = 1
result = 0

while i <= 9:
    if i % 2 == 1:
        result += i
    i += 1

print(result)
# for문
array = [1, 2, 3, 4, 5]

for x in array:
    print(x)
  • 기본적인 for문이 c#에서 foreach()문과 유사하네. 배열에 있는 값을 하나씩 순서대로 가져오고 싶을 때 사용하면 되겠다.

range(시작 값, 끝 값 + 1)

Java, C# 쪽에서 흔히 쓰던 for(int i=0; i<=9; i++) 문법을 쓰려면, 파이썬에선
for(i in range(9)) ⇒ 이런식으로 내장 함수 range()를 써주면 됨.
(인자를 1개만 넣으면 자동으로 시작값은 0이 된다.)

# i는 1~9까지의 모든 값을 순회
for i in range(1, 10)
    result += i

print(result)

continue

반복문에서 남은 코드의 실행은 무시하고, 다음 반복을 진행하고자 할 때.

# 1부터 9까지 홀수의 합 구하기
result = 0

for i in range(1, 10):
    if i % 2 == 0:
        continue
    result += i

print(result)

break

i = 1

while True:
    print("현재 i의 값:", i)
    if i == 5:
        break
    i += 1