๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐ŸŒฑ CS Study/ํŒŒ์ด์ฌ

๋น„๊ต ์—ฐ์‚ฐ์ž vs. ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž (Comparison vs. Logical operator)

by HelloRabbit 2022. 7. 25.
728x90

๋น„๊ต ์—ฐ์‚ฐ์ž

๋น„๊ต ์—ฐ์‚ฐ์ž๋Š” (1) ๊ฐ’์ด๋‚˜ (2) ๋ณ€์ˆ˜์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๋น„๊ตํ•ด์„œ True/False๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ค€๋‹ค.

 

1. ๊ฐ’์„ ๋น„๊ตํ•˜๋Š” ์—ฐ์‚ฐ์ž: <, >, <=, >=, ==, !=

a = 1
b = 3

print(a < b)	# True
print(a <= b)	# True
print(a > b)	# False
print(a >= b)	# False
print(a == b)	# False
print(a != b)	# True

 

2. ๋ณ€์ˆ˜์˜ ๊ฐ์ฒด ์ฃผ์†Œ๋ฅผ ๋น„๊ตํ•˜๋Š” ์—ฐ์‚ฐ์ž: is, is not

a = "๊ฐ€์ง€"
b = "๊ฐ€์ง€"
c = b

print(a == b)	# True
print(a is b)	# False

print(b == c)	# True
print(b is c)	# True

์œ„์˜ ์˜ˆ์ œ์™€ ๊ฐ™์ด a, b, c ๋ณ€์ˆ˜๊ฐ€ ๋ชจ๋‘ "๊ฐ€์ง€"๋ผ๋Š” ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์„œ == ์—ฐ์‚ฐ์ž๋กœ ๊ฐ’์„ ๋น„๊ตํ–ˆ์„ ๋•Œ๋Š” ๋ชจ๋‘ True๊ฐ€ ๋ฐ˜ํ™˜๋œ๋‹ค.

c๋Š” b๋ฅผ ์–•์€ ๋ณต์‚ฌํ•œ ๋ณ€์ˆ˜์ด๋‹ค.

ํ•˜์ง€๋งŒ a์™€ b ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ๊ฐ๊ฐ ๋ณ€์ˆ˜๋ฅผ ๋”ฐ๋กœ "๊ฐ€์ง€"๋กœ ์„ ์–ธํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋กœ ๋‹ค๋ฅธ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ a is b๋Š” False๊ฐ€ ๋ฐ˜ํ™˜๋œ๋‹ค.

๋ฐ˜๋ฉด์— c๋Š” b๋ฅผ ์–•์€ ๋ณต์‚ฌํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— b์™€ c๋Š” "๊ฐ€์ง€"๋ผ๋Š” ๊ฐ’์— ๋Œ€ํ•ด์„œ ๊ฐ™์€ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๊ณต์œ ํ•˜๊ณ  ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ b is c๋Š” True๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ฒŒ ๋œ๋‹ค.

 

์ด๊ฑด id()๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

print(a, b, c)			# ๊ฐ€์ง€ ๊ฐ€์ง€ ๊ฐ€์ง€
print(id(a), id(b), id(c))	# 140428732886640 140428732886064 140428732886064

๋ณ€์ˆ˜ a, b, c์˜ ๊ฐ’์€ ๋ชจ๋‘ "๊ฐ€์ง€"์ด์ง€๋งŒ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋Š” ์–•์€ ๋ณต์‚ฌ๋œ b์™€ c๋งŒ ๊ฐ™์€ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

โ€ป ๋ณ€์ˆ˜๊ฐ€ ์ˆซ์ž๋ฅผ ๊ฐ€๋ฅดํ‚ฌ ๋•Œ -5์—์„œ 256๊นŒ์ง€๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ€ ์ •ํ•ด์ ธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ์ž ๋‹ค๋ฅธ ๋ณ€์ˆ˜์— ๋”ฐ๋กœ ์ง€์ •ํ•ด๋„ ๊ฐ™์€ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค.

num1, num11 = 256, 256
print(num1 is num11)		# True
print(id(num1), id(num11))	# 11264224 11264224

num2, num22 = 257, 257
print(num2 is num22)		# False
print(id(num2), id(num22))	# 140592459425488 140592459424720

 

 

๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž

๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž๋Š” not, and, or ์„ธ๊ฐ€์ง€๊ฐ€ ์žˆ๋Š”๋ฐ ์ด ์ˆœ์„œ๋กœ ํŒ๋‹จ์„ ํ•œ๋‹ค.

A B A and B A or B not A
True True True True False
False False False False True
True False False True -
False True False True -
  • and : ์–‘์ชฝ ๋ชจ๋‘ True์—ฌ์•ผ True๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  • or :    ์–‘์ชฝ ์ค‘ ํ•˜๋‚˜๋ผ๋„ True์ด๋ฉด True๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  • not :  ๋ฐ˜๋Œ€๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

ํŒ๋‹จ ์ˆœ์„œ

  1. ๋น„๊ต ์—ฐ์‚ฐ์ž(<, >, <=, >=, ==, !=)๋ฅผ ๋จผ์ € ํŒ๋‹จํ•œ๋‹ค.
  2. ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž(not, and or)๋ฅผ ๋‹ค์Œ์œผ๋กœ ํŒ๋‹จํ•œ๋‹ค.

๋Œ“๊ธ€