Studynote/Python

[Python] μ—°μ‚°μž

minzhen 2022. 6. 19. 17:39

Pythonμ—μ„œ ν—·κ°ˆλ¦΄ 수 μžˆλŠ” μ—°μ‚°μžλ₯Ό 총정리해본닀.

μ—°μ‚°μžλž€?

μ—°μ‚°μž(operator)λž€ νŠΉμ •ν•œ μž‘μ—…μ„ ν•˜κΈ° μœ„ν•΄μ„œ μ‚¬μš©ν•˜λŠ” 기호λ₯Ό μ˜λ―Έν•œλ‹€. 즉, μ—°μ‚°μžλŠ” ν”Όμ—°μ‚°μžμ˜ 값을 μ‘°μž‘ν•  수 μžˆλŠ” ꡬ쑰이닀. 예λ₯Ό λ“€μ–΄ ν‘œν˜„μ‹ 4 + 5 = 9μ—μ„œ 4와 5λŠ” ν”Όμ—°μ‚°μž, +λŠ” μ—°μ‚°μžμ΄λ‹€.

 Pythonμ—μ„œ μ œκ³΅ν•˜λŠ” μ—°μ‚°μžλŠ” λ‹€μŒκ³Ό 같이 7κ°œκ°€ μžˆλ‹€.
  • μ‚°μˆ  μ—°μ‚°μž (Artithmetic Operators)
  • 비ꡐ μ—°μ‚°μž (Comparison Operators)
  • ν• λ‹Ή μ—°μ‚°μž (Assignment Operators)
  • 논리 μ—°μ‚°μž (Logical Operators)
  • λΉ„νŠΈ μ—°μ‚°μž (Bitwise Operators)
  • 멀버 μ—°μ‚°μž (Membership Operators)
  • 식별 μ—°μ‚°μž (Identity Operators)
 
 
 
 
 

μ‚°μˆ  μ—°μ‚°μž

  1. 사칙연산 + , - , * , /

a + b		# λ”ν•˜κΈ°
a – b		# λΉΌκΈ°
a * b		# κ³±ν•˜κΈ°
b / a		# λ‚˜λˆ„κΈ°

 

  2. κ±°λ“­μ œκ³± **

a ** b		# a^b

2 ** 5		# 2^5 => 32

 

 

  3. λͺ« //κ³Ό λ‚˜λ¨Έμ§€ %   μ€‘μš”!⭐⭐⭐ (자주 ν‹€λ¦Ό)

a // b		# a / b의 λͺ«
a % b		# a / b의 λ‚˜λ¨Έμ§€

 

 

비ꡐ μ—°μ‚°μž

  1. 일치 == 와 뢈일치 !=

a == b		# a와 bκ°€ μΌμΉ˜ν•˜λ‹€. κ°™λ‹€.
a != b		# a와 bκ°€ μΌμΉ˜ν•˜μ§€ μ•ŠλŠ”λ‹€. κ°™μ§€ μ•Šλ‹€.

 

 2. λŒ€μ†Œκ΄€κ³„ > , < , >= , <=

a > b		# aκ°€ b보닀 크닀.
a < b		# aκ°€ b보닀 μž‘λ‹€.
a >= b		# aκ°€ b보닀 ν¬κ±°λ‚˜ κ°™λ‹€.
a <= b		# aκ°€ b보닀 μž‘κ±°λ‚˜ κ°™λ‹€.

 

 

ν• λ‹Ή μ—°μ‚°μž

  ν• λ‹Ή μ—°μ‚°μžλž€ λ³€μˆ˜μ— 값을 ν• λ‹Ήν•˜κΈ° μœ„ν•˜μ—¬ μ‚¬μš©ν•˜λŠ” μ—°μ‚°μžμ΄λ‹€. 기본적으둜 = (Equal Sign)을 μ‚¬μš©ν•œλ‹€.

πŸ’‘
μ‚°μˆ μ—°μ‚°μžμ™€ ν•¨κ»˜ μ‚¬μš©ν•˜λŠ” +=, -=, *=, /=, %=, //= λ“±κ³Ό 같은 μ—°μ‚°μžλ„ ν• λ‹Ήμ—°μ‚°μž!

1. ν• λ‹Ή = 

a = 1		# a에 1μ΄λΌλŠ” μ •μˆ˜λ₯Ό ν• λ‹Ήν•œλ‹€. 
print(a)	# -> 1

 

 2. μ‚°μˆ  + ν• λ‹Ή = ν• λ‹Ήμ—°μ‚°μž += , -= , *= , /= , %= , //=, **=

a += b		# a에 a+b값을 ν• λ‹Ήν•œλ‹€.
a -= b		# a에 a-b값을 ν• λ‹Ήν•œλ‹€.
a *= b		# a에 a*b값을 ν• λ‹Ήν•œλ‹€.
a /= b		# a에 a/b값을 ν• λ‹Ήν•œλ‹€.

a //= b		# a에 a//bκ°’(λͺ«)을 ν• λ‹Ήν•œλ‹€.
a %= b		# a에 a%bκ°’(λ‚˜λ¨Έμ§€)을 ν• λ‹Ήν•œλ‹€.

a **= b		# a에 a^b값을 ν• λ‹Ήν•œλ‹€.

 

 

논리 μ—°μ‚°μž  vs  λΉ„νŠΈ μ—°μ‚°μž (μ™„μ „νžˆ 닀름!)

  논리 μ—°μ‚° and,  or not

 

❗
Pythonμ—μ„œλŠ” λ…Όλ¦¬μ—°μ‚°μžλ₯Ό μ“Έ λ•Œμ— && λŒ€μ‹  and, || λŒ€μ‹  or을 μ‚¬μš©ν•œλ‹€.
if a == 2 or a == 4:		# aκ°€ 2κ±°λ‚˜ 4일 λ•Œ

if a > 4 and a < 8:			# aκ°€ 4보닀 크고 8보닀 μž‘μ„ λ•Œ

if not True:				# 참이 아닐 λ•Œ,

 

 

λΉ„νŠΈ μ—°μ‚°μž (μ™„μ „νžˆ 닀름!)

  bitwise μ—°μ‚° & , | , ~ , ^ , << , >> 

  이 μ—°μ‚°μžλ“€μ€ λΉ„νŠΈλ‹¨μœ„μ˜ 연산을 ν•˜λŠ”λ° μ‚¬μš©λœλ‹€. λ…Όλ¦¬μ—°μ‚°μžμ™€ ν˜Όλ™ν•˜μ§€ 말자!*
  • ^  : 배타적 or   (XOR, exclusive or) 
  • << : left shift     (λΉ„νŠΈ 수 만큼 μ™Όμͺ½μœΌλ‘œ 이동. 1λΉ„νŠΈ λ°€λ•Œλ§ˆλ‹€ 2λ₯Ό κ³±ν•œ 것과 같은 효과.    즉, n << m   πŸ‘‰πŸ»   n * 2^m)
  • >> : right shift   (λΉ„νŠΈ 수 만큼 였λ₯Έμͺ½μœΌλ‘œ 이동. 1λΉ„νŠΈ λ°€λ•Œλ§ˆλ‹€ 2둜 λ‚˜λˆˆ 것과 같은 효과. 즉, n >> m  πŸ‘‰πŸ»   n / 2^m)
a = 60
b = 13

# 이λ₯Ό μ΄μ§„λ²•μœΌλ‘œ λ‚˜νƒ€λ‚΄λ©΄
# a = 0011 1100
# b = 0000 1101

print(a & b)		# => 12 (0000 1100)
print(a | b)		# => 61 (0011 1101)

print(a ^ b)		# => 49 (0011 0001) (배타적 or)(두 값이 λͺ¨λ‘ 1μ΄κ±°λ‚˜ λͺ¨λ‘ 0이면 κ²°κ³Όκ°€ 0, 두 κ°’ 쀑 ν•˜λ‚˜λ§Œ 1이면 κ²°κ³Όκ°€ 1)

print(~a)		# => -61 (1100 0011)(~ μ—°μ‚° κ²°κ³ΌλŠ” μ›λž˜ μˆ˜μ— λ§ˆμ΄λ„ˆμŠ€ 기호λ₯Ό 뢙인 λ’€ 1을 λΊ€ κ°’κ³Ό κ°™λ‹€.)

print(a << 2)		# => 240 (1111 0000)
print(a >> 2)		# => 15  (0000 1111)

 

 

 

⭐주의!  λ…Όλ¦¬ μ—°μ‚°μž  vs  λΉ„νŠΈ μ—°μ‚°μž (μ™„μ „νžˆ 닀름!)

  :  and μ™€ &,   orκ³Ό|,   notκ³Ό ~

# and vs &
print(8 and 10)		# => 10	(0을 μ œμ™Έν•œ λͺ¨λ“  μˆ«μžλŠ” Trueμ΄λ―€λ‘œ, 8 and 10 은 8이 True이고 10이 λ°˜ν™˜)
print(8 & 10)		# => 8	(8 & 10 을 μ΄μ§„μˆ˜λ‘œ ν‘œν˜„ -> 1000 & 1010. 이 κ²°κ³ΌλŠ” 1000이 λ˜λ―€λ‘œ 8이 λ°˜ν™˜)


# or vs |
print(8 or 10)		# =>8 (8이 Trueμ΄λ―€λ‘œ 8이 λ°˜ν™˜λ¨)
print(8 | 10)		# =>10 (μ΄μ§„μˆ˜λ‘œ ν‘œν˜„ν•˜λ©΄ 1000 βŽͺ 1010 이고, 이 κ²°κ³ΌλŠ” 1010이 λ˜λ―€λ‘œ 10이 λ°˜ν™˜)

# not vs ~
print(not 7)		# => False
print(not 0)		# => True
print(~7)			# => ~7 (~7(2) = ~0111이고, ~λŠ” 0은 1, 1은 0이 λ˜λ―€λ‘œ 이진법 1000, μ‹­μ§„λ²•μœΌλ‘  -8이 됨)
print(~0)			# => -1 (보수)

 

 

멀버 μ—°μ‚°μž

문자 κ·ΈλŒ€λ‘œ, 쒌츑 ν”Όμ—°μ‚°μžκ°€ 우츑 μ½œλ ‰μ…˜μ— 속해 μžˆλŠ”μ§€ μ•„λ‹Œμ§€λ₯Ό μ²΄ν¬ν•˜λŠ” μ—°μ‚°μžμ΄λ‹€. Python의 멀버(쉽) μ—°μ‚°μžλŠ” λ¬Έμžμ—΄, 리슀트 λ˜λŠ” νŠœν”Œκ³Ό 같은 μ‹œν€€μŠ€ 멀버십을 ν…ŒμŠ€νŠΈν•˜λŠ”λ° μ‚¬μš©λœλ‹€.

* Python의 λ‚΄μž₯ μ‹œν€€μŠ€ νƒ€μž… 5κ°€μ§€ : λ¬Έμžμ—΄, νŠœν”Œ, 리슀트, λ°”μ΄νŠΈ λ°°μ—΄, λ°”μ΄νŠΈ

  • in  : x in y πŸ‘‰πŸ» xκ°€ μ‹œν€€μŠ€ y의 멀버이면 True
  • not in : x not in y πŸ‘‰πŸ» xκ°€ μ‹œν€€μŠ€ y의 멀버가 μ•„λ‹Œ 경우 True
a = [1, 2, 3, 4]
b = 3 in a
print(b)		# => True

 

 
 
 

식별 μ—°μ‚°μž

식별 μ—°μ‚°μžμ—λŠ” is, is not이 μžˆλŠ”λ°, μ΄λŠ” 두 객체의 λ©”λͺ¨λ¦¬ μœ„μΉ˜λ₯Ό μ²΄ν¬ν•œλ‹€.

  • is  : μ—°μ‚°μžμ˜ μ–‘μͺ½μ— μžˆλŠ” λ³€μˆ˜κ°€ λ™μΌν•œ 객체λ₯Ό κ°€λ¦¬ν‚€λŠ” 경우  →  true
  • is not :μ—°μ‚°μžμ˜ μ–‘μͺ½μ— μžˆλŠ” λ³€μˆ˜κ°€ λ™μΌν•œ 객체λ₯Ό κ°€λ¦¬ν‚€λŠ” 경우  →  false
a = "ABC"
b = a
print(a is b)  # => True

 

 
 
 
 
 
 
 
 

μ°Έκ³  μ‚¬μ΄νŠΈ