Information Security

IF 문 본문

Python

IF 문

leeeeye321 2017. 3. 17. 14:43

IF 조건문

if 조건문 :

수행 문장1        

수행 문장2        ←조건이 참일 때 수행

else :

수행 문장1       

수행 문장2        ←조건이 거짓일 때 수행

-파이썬에는 C나 JAVA처럼 구분해주는 역할을 하는 괄호가 없기 때문에 들여 쓰기를 사용하여 구분해야 한다. 

-들여 쓰기가 존재하는 부분까지가 조건에 맞을 때 수행하는 범위이다.

 

들여쓰기(indentation) 

-Python에서는 들여 쓰기가 자동으로 되지 않는다. 들여 쓰기를 하지 않으면 위와 같이 에러가 발생하므로 주의해야 한다.

 

-IDLE에서는 자동으로 들여 쓰기가 된다. 

 

★★주의

-else에 속한 문장이 두 줄이다.

 

-마지막 문장에 들여 쓰기를 하지 않아 else에 속한 문장이 두 줄에서 한 줄로 바뀌었다. 

-들여 쓰기에 따라서 실행 결과가 달라지므로 주의해야 한다.

 

참/거짓 판별

-0은 거짓, 0이 아닌 숫자는 참으로 판단된다.

 

-문자 '0'이므로 참으로 판단된다.

-문자열, 리스트, 튜플, 딕셔너리가 비어있으면 거짓, 비어있지 않으면 참으로 판단된다.

 

IF 문의 딕셔너리 테스트

-Key를 통해서 구한 값이 2이므로 TRUE(0이 아닌 숫자는 참) 출력

 

-Key를 통해서 구한 값이 0이므로 FALSE(0이면 거짓) 출력

 

-'d'는 존재하지 않는 Key이므로 에러가 발생한다.

 

-get(x)를 사용하면 에러가 발생하지 않고 거짓으로 판단된다.

 

IF 문의 리스트 테스트(in, not in)

-리스트 내 요소의 존재 여부를 판단할 때 사용한다.

-in: 요소가 존재하면 참, 존재하지 않으면 거짓 

-not in: 요소가 존재하지 않으면 참, 존재하면 거짓 

 

비교 연산자

비교 연산자 

설명

 x<y

 x가 y보다 작다

 x>y

 x가 y보다 크다

 x==y

 x와 y가 같다

 x!=y

 x와 y가 같지 않다

 x>=y

 x가 y보다 크거나 같다

 x<=y

 x가 y보다 작거나 같다

 

EX1

 

EX2 

-변수가 짝수인지 홀수인지 판단

-짝수의 조건: 2로 나눠서 나누어 떨어져야 한다.

 

'=' 사용 시 주의!!

'='은 대입의 의미를 가지고, '=='은 같은 값을 가지는지 판단하는 연산자이므로 구분해서 사용해야 한다.

 

AND, OR, NOT

연산자 

설명 

 x or y

 x와 y 둘 중에 하나만 참이면 전체 결과가 참이다.

 x and y

 x와 y 각각의 결과가 모두 참이여야 전체 결과가 참이다.

 not x

 x가 거짓이면 참이다.

 

-a는 참(1)이지만 b가 거짓(0)이기 때문에 전체 결과도 거짓이 된다. 

 

-두 조건식의 결과가 모두 참이므로 전체 결과도 참이다.

 

-OR 연산은 두 조건식 중 하나의 결과만 참이어도 전체 결과가 참이기 때문에 (a>0)은 참이고 (b>0)은 거짓이지만 전체 결과가 참이 된다.

 

-(a>0)은 참이고 (not b)는 b가 거짓이므로 참이다. 두 결과 모두 참이므로 전체 결과도 참이 된다. 

 

다중 IF 문

다양한 조건을 판단해야 할 경우 사용한다.

-들여쓰기 주의!!!

 

-이렇게 여러 개의 조건을 겹쳐서 쓰면 매우 복잡하고 불편해진다. 

 

-elif를 사용하면 여러 조건을 연속해서 넣을 수 있다.

-하나의 if 문으로 모두 연결된다.

-조건을 검사하여 거짓이면 다음 조건으로 넘어가고 참이면 다음 문장을 수행한 후 빠져나온다.

 

IF 조건문 테스트

<학점>

90 ~ 100: A

75 ~ 89: B

65 ~ 74: C

55 ~ 64: D

0 ~ 54  : F

 

 

 

 

 

 

'Python' 카테고리의 다른 글

함수(Function)  (0) 2017.03.21
while 문 & for 문  (0) 2017.03.18
Dictionary & Set  (0) 2017.03.16
List & Tuple  (0) 2017.03.16
String  (0) 2017.03.16