TIL 28. python 참/거짓 판단과 조건문

rahula·2021년 6월 3일
0

python

목록 보기
3/10
post-thumbnail

파이썬의 참/거짓 판단과 조건문에 대해 알아보겠습니다. 이 글은 책 점프 투 파이썬을 토대로 작성됐습니다.

참/거짓 판단

조건문?

조건문이란 참과 거짓을 판단하는 문장을 말한다.

money = True
if money:
	print("taxi!")
else:
	print("walk..")

참과 거짓을 판단하는 것은 while 반복문에서도 쓰이기 때문에 자세히 알아둬야 한다.

비교 연산자

비교 연산자에는 들에는 == 외에도 다양한 operator들이 있다.

  1. !=연산자 : '같지 않은'의 뜻을 갖고 있으며 ==의 정반대 역할을 한다.
  2. >연산자 : '보다 큰'의 의미.
  3. <연산자 : '보다 작은'의 의미.
  4. >=연산자 : '보다 크거나 같은'의 의미.
  5. <=연산자 : '보다 작거나 같은'의 의미

파이썬에서 비교 연산자가 어디까지 쓰일 수 있는지 테스트해본다.
리스트, 튜플, 딕트, 문자열에다 비교 연산자를 써봤다.

short_list = [1,2]
long_list = [1,2,3,4,5]
print(short_list < long_list)
# True

short_tuple = 1,2
long_tuple = 1,2,3,4,5
print(short_tuple < long_tuple)
# True

short_dict = {'a':"apple"}
long_dict = {'a':"apple",'b':"banana"}
print(short_dict < long_dict)
# TypeError: '<' not supported between instances of 'dict' and 'dict'

short_str = "hi"
long_str = "hello"
print(short_str < long_str)
# False

리스트와 튜플은 항목의 갯수에 따라 크기를 판단할 수 있다.

dict는 서로의 길이를 바로 비교할 수 없다. 타입 에러가 뜬다. len함수를 써서 길이를 구한 다음에 비교를 해야 할 듯 하다.

문자열끼리의 비교는 에러를 띄우지는 않지만, 내가 아직 모르는 다른 기준으로 길이를 판단하는 것 같다. 문자열도 len함수를 써야겠다.

and, or, not

조건을 판단하기 위해 사용하는 다른 연산자로는 and, or, not이 있다.

굳이 장르를 따지자면 집합 개념에 가깝다. 교집합과 합집합, 여집합.

교집합과 마찬가지로 and는 모든 조건이 True일 때에만 True를 반환한다. 합집합과 마찬가지로 or은 조건들 중의 하나만 True라면 True를 반환한다. not은 여집합과 마찬가지로 주어진 조건의 반대 경우들에 대해서만 True를 반환한다.

자바스크립트에서는 !연산자를 통해 데이터의 참거짓 값을 반대로 바꿨다. 파이썬의 not연산자가 보기에 더 직관적인 느낌이 든다.

in

in연산자는 어떤 항목이 데이터(문자열, 리스트, 튜플, 딕셔너리(key에 한해서))의 안에 있는지를 확인할 수 있도록 해준다.

print("a" in "banana") # True
print("apple" in "banana") # False

my_list = [1,2,3,4,5]
print(1 in my_list) # True
print(100 in my_list) # False

my_tuple = (1,2,3)
print(1 in my_tuple) # True
print(100 in my_tuple) # False

my_dict = {'a':"apple",'b':"banana"}
print('a' in my_dict) # True
print('c' in my_dict) # False

조건문

if와 else에 대해선 자바스크립트와 동일하다. 그러나 세부적인 차이가 있다.

pass

아무런 일을 하지 않도록 하고 싶을 때 쓴다.

if a > 10:
	pass
else:
	print("wow")

elif

elif는 else if 를 줄인 뜻이다.

elifif문과 연결되어 사용되며 if문이 먼저 선행 되고 그 다음에 위치하게 된다.

자바스크립트의 else if와 동일하다. 조건문의 세부적인 조건을 만들고 싶을 때 쓴다.

한줄로 작성하기

자바스크립트와 마찬가지로, 수행할 문장이 한 줄이면 if키워드 혹은 else키워드와 한 줄안에 모두 작성할 수 있다.

조건부 표현식

조건에 따라 다른 값을 변수에 할당하고 싶을 때, ifelse문을 이용하면 너무 길어진다. 이를 조건부 표현식으로 한 줄로 작성할 수 있다.

if score >= 60:
	message = "success"
else:
	message = "failure"

message = "success" if score >= 60 else "failure"

아쉽지만 elif까지는 안 되는 듯하다.

추가 질문

  1. is연산자도 ==와 비슷한 역할을 하는 것 같은데,==와 어떤 차이점이 있고 어떤 경우에 많이 쓰일까?
profile
백엔드 지망 대학생

0개의 댓글