개발 이야기/Python

Python - 11. 조건문(if)

Crazy Lazy 2021. 7. 21. 21:18

1. 조건문(if) 정의 및 특징.

- 참과 거짓을 판단하는 문장.

- 조건 판단 후 상황(case)에 맞게 처리해야 할 경우 사용.

- 조건문 다음 콜론(:)이 붙음.

- if 조건문: 형태에선 들여쓰기(indentation)를 맞춰서 해야함. (타언어에서 {} 를 쓰듯 파이썬은 들여쓰기로 구분)

- 탭 또는 공백 중 하나의 형태로 사용해야 하며, 라인(또는 공백수량)도 맞아야 함.

  (즉, 공백 1칸이던 4칸이던, 탭 1칸이던 동일한 규격으로 사용해야 됨.)

a=1

# 조건문(if) 기본 구조.
if a > 1:
    print('a값이')
    print('1보다 크다')


## 오류 예시.
# 탭과 공백 같이 사용하여 오류
if a:
	print('a값이')
    print('1보다 크다')

# 공백이 맞지 않아 오류
if a:
    print('a값이')
print('1보다 크다')

# 공백이 맞지 않아 오류
if a:
    print('abc')
    print('def')
        print('ghi')

 

2. 비교연산자.

비교연산자 설명
x < y x가 y보다 작다
x > y x가 y보다 크다
x == y x와 y가 같다
x != y x와 y가 같지 않다
x >= y x가 y보다 크거나 같다
x <= y x가 y보다 작거나 같다
x=1
y=2

# 예시.
x<y		# 결과 : True
x>y		# 결과 : False
x==y		# 결과 : False
x!=y		# 결과 : True
x>=y		# 결과 : False
x<=y		# 결과 : True

 

3. 특수 연산.

특수 연산 설명
x or y x와 y 둘중에 하나만 참이어도 참이다
x and y x와 y 모두 참이어야 참이다
not x x가 거짓이면 참이다
x in y x가 y에 포함되면 참이다 (y는 리스트,튜플,문자열 일 수 있다.)
x not in y x가 y에 포함되지 않으면 참이다 (y는 리스트,튜플,문자열 일 수 있다.)
x=1
y=-1
z=True
v=[1,2,3]

# or : 둘 중 하나의 조건이라도 만족.
if x>0 or y>0:		# 결과 : x 또는 y는 양수
    print('x 또는 y는 양수')
else:
    print('x와 y는 음수')


# and : 두 조건 모두 만족.
if x>0 and x<2:		# 결과 : x는 정수일때, x의 값은 1
    print('x는 정수일때, x의 값은 1')
else:
    print('x는 정수일때, x의 값은 1이 아님')


# not : 거짓은 참으로, 참은 거짓으로.
if not z:		# 결과 : z는 True
    print('z는 False')
else:
    print('z는 True')


# in : 포함하면 참, 포함하지 않으면 거짓.
if 3 in v:		# 결과 : v에 3이 포함됨.
    print('v에 3이 포함됨.')
else:
    print('v에 3이 포함되지 않음.')


# not in : 포함하면 거짓, 포함하지 않으면 참.
if 3 not in v:		# 결과 : v에 3이 포함됨.
    print('v에 3이 포함되지 않음.')
else:
    print('v에 3이 포함됨.')

 

4. 다중 조건.

x=-1

if x==0:
    print('x는 0')
elif x>0:
    print('x는 0보다 큼')
else:
    print('x는 0보다 작음')

 

5. 그 외 특수 표현.

x=1

# 일반 표현.
if x==1:
    print('x는 1임')
else:
    print('x는 1이 아님')

# 한 줄 표현.
if x==1: print('x는 1임')
else: print('x는 1이 아님')


# 조건부 표현.
print('x는 1임') if x==1 else print('x는 1이 아님')


# pass : 조건에 부합하지만 아무일도 발생하지 않고 싶을 때. (아래 구문 실행 시 시작과 종료만 찍힘.)
print('시작')
if x==1:
    pass
else:
    print('x는 1이 아님')


print('종료')