Post

2주 - 3장 조건문

조건문

불 만들기 : 비교 연산자

여섯개의 비교연산자를 사용하여 만들어냄

1
2
3
4
5
6
print(10==100) # False
print(10!=100) # True
print(10>100) # False
print(10<100) # True
print(10<=100) # True
print(10>=100) # False

문자열에도 비교연산자 사용가능

1
2
3
4
print("가방" == "가방") # True
print("가방" != "하마") # True
print("가방" < "하마") # True
print("가방" > "하마") # False

불 연산하기 : 논리 연산자

not연산자 : 단항연산자로 참과 거짓을 반대로 출력할때 쓰임

1
2
3
4
x = 10
under_20= x<20
print("under_20",under_20) # True
print("not under_20", not under_20)  #Fals

and 연산자 or 연산자

and 연산자의 경우 양쪽 변의 값이 참일때 참을 출력함 (그리고)

or 연산자의 경우 한쪽 변만 참이여도 참을 출력함 (또는)

if조건문이란

조건에 따라 실행을 조정할 수 있는 구문 IF조건문

  • 파이썬의 경우 반드시 4칸 들여쓰기로 구조를 만들어줘야함

  • 자바스크립트와 다른 여타 언어와 달리 {}를 쓰지 않음

1
2
3
4
5
if True:
    print("True입니다.")
    print("정말 True입니다.") #실행됨
if False:
    print("False입니다.") #실행되지 않음

날짜 시간 활용하기

모듈이라는 기능 활용 datetime기능을 가져와 시간을 활용가능함

1
2
3
4
5
6
7
8
9
10
11
import datetime

now = datetime.datetime.now()

#출력합니다.
print(now.year , "")
print(now.month , "")
print(now.day , "")
print(now.hour , "")
print(now.minute , "")
print(now.second , "")

오전 오후 구분해보기 now.hour을 12를 기점으로 구분!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import datetime

now = datetime.datetime.now()
if now.hour < 12:
    print("오전 {}년 {}월 {}일 {}시 {}분 {}초".format(
    now.year,
    now.month,
    now.day,
    now.hour,
    now.minute,
    now.second,
))
else:
    print("오후 {}년 {}월 {}일 {}시 {}분 {}초".format(
    now.year,
    now.month,
    now.day,
    now.hour,
    now.minute,
    now.second,
))

계절 구분 해보기

1
2
3
4
5
6
7
8
if 3 <= now.month <=5 :
    print(" 이번 달은 {}월로 봄입니다.".format(now.month))
if 6<= now.month <=8:
    print(" 이번 달은 {}월로 여름입니다.".format(now.month))
if 9<= now.month <=11:
    print(" 이번 달은 {}월로 가을입니다.".format(now.month))
if 12 or 1<=now.month <=2:
    print(" 이번 달은 {}월로 겨울입니다.".format(now.month))

if~else 와 elif구문

차이점은 단 하나!

else의 경우 다른 조건문 외의 모든 경우일때 실행되고

elif의 경우 if조건문 외 새로운 조건들을 추가할때 사용된다.

else 조건문의 활용

if참 조건외 거짓 조건일때 실행시키고 싶은 부분을 else에 넣으면 됨

1
2
3
4
5
6
7
8
9
10
#짝수 홀수 구분
number = input("정수 입력 :")

#lastnumber 추출
last_number = int(number[-1])

if last_number%2 == 0:
    print("입력한 숫자는 {}이며 짝수입니다.".format(number))
else:
    print("입력한 숫자는 {}이며 홀수입니다.".format(number))

elif구문

조건이 딱 두가지만으로 나누어지지 않습니다.

따라서 3개 이상의 조건을 사용하는 방법으로 elif구문을 사용하게 됩니다.

예시 계절을 구하는 구문

1
2
3
4
5
6
7
8
if 3 <= now.month <=5 :
    print(" 이번 달은 {}월로 봄입니다.".format(now.month))
elif 6<= now.month <=8:
    print(" 이번 달은 {}월로 여름입니다.".format(now.month))
elif 9<= now.month <=11:
    print(" 이번 달은 {}월로 가을입니다.".format(now.month))
else
    print(" 이번 달은 {}월로 겨울입니다.".format(now.month))

조건문을 효율적으로 사용하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
score = float(input("학점입력"))

if score ==4.5:
    print("")
elif 4.2<= score <4.5:
    print("교수님의 사랑")
elif 3.5<= score <4.2:
    print("현 체제의 수호자")
elif 2.8<= score <3.5:
    print("일반인")
elif 2.3<= score <2.8:
    print("일탈을 꿈꾸는 소시민")
elif 1.75<= score <2.3:
    print("오락문학의 선구자")
elif 1.0<= score <1.75:
    print("불가축천민")
elif 0.5<= score <1.0:
    print("자벌레")
elif 0<= score <0.5:
    print("플랑크톤")
elif score == 0:
    print("시대를 앞서나간 혁명의 씨앗")

기존의 elif방법을 좀더 효율적으로 본다면

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
score = float(input("학점입력"))

if score ==4.5:
    print("")
elif 4.2<= score:
    print("교수님의 사랑")
elif 3.5<= score:
    print("현 체제의 수호자")
elif 2.8<= score:
    print("일반인")
elif 2.3<= score:
    print("일탈을 꿈꾸는 소시민")
elif 1.75<= score:
    print("오락문학의 선구자")
elif 1.0<= score:
    print("불가축천민")
elif 0.5<= score:
    print("자벌레")
elif 0<= score:
    print("플랑크톤")
else:
    print("시대를 앞서나간 혁명의 씨앗")

조건 비교에서 범위를 모두 찾기보단 하위값 검사만 진행해서 조건문 실행 횟수를 반으로 줄인 방법

False로 변환되는 값

빈 컨테이너(빈 문자열,빈 바이트, 빈리스트 기타등등),NONE,숫자 0 등이 False로 변환됨

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# False로 변환되는 값
print  (" # if 조건문에 0 넣기")
if 0 :
    print("0은 True 로 반환됩니다.")
else:
    print("0은 Flase로 변환됩니다.")
print  (" # if 조건문에 빈 문자열 넣기")
if "" :
    print("빈 문자열은 True 로 반환됩니다.")
else:
    print("빈 문자열은 Flase로 변환됩니다.")


#모두 else구문이 실행됨
#0은 Flase로 변환됩니다.
#빈 문자열은 Flase로 변환됩니다.

PASS 키워드

골격만 잡아두고 나중에 구문을 완성시키고 싶을때 사용하는 키워드

에러를 발생시키지 않고 넘기기위해 사용됨

나중에 다시 확인하기 위해선 raise NotIMplementedError를 사용함

1
2
3
4
5
6
7
8
# PASS 키워드
number = input("정수입력")
number =int(number)

if number>0:
    pass
else:
    raise NotIMplementedError
This post is licensed under CC BY 4.0 by the author.

Trending Tags