산술연산자
연산 안되는거 주의
{'one':1} + {'two':2} # Error
{5} + {6} # Error
거듭제곱 우선순위 주의
-2 **2 # -4
// 연산자는 몫이 아님. 내림임.
a = -5
b = 2
print(a // b) # -3
부동소수점 주의
10 % 3.3 # 0.10000000000000053
# 10의 제곱수를 곱해서 해결.
(100 % 33) / 10 # 0.1 소숫점 첫째자리 까지
(1000 % 331) / 100 # 0.07 둘째자리 까지
비교연산자
문자는 유니코드 기준으로 비교
print('apple' < 'banana') # True b가 a보다 유니코드에서 뒤에 있음
print('hello' < 'hell o') # False o가 공백보다 유니코드에서 뒤에 있음
동시에 비교 가능
x = 10
5 < x < 15 # True
배열에서 맨 앞 인덱스부터 비교, 같으면 다음 인덱스 비교
[10, 20, 30] > [20, 30, 40] # False 10 < 20
논리연산자
이미 True나 False가 정해져 있다면 뒤에를 안봄.
a = True
b = False
a and b and ccc and ddd # 이미 b가 False 이므로 뒤에 ccc와 ddd 라는 없는 변수를 넣어도 실행된다.
# False
a = True
b = False
a or b or asdf or asdf # 마찬가지로 a가 True라서 뒤에는 안봄.
and 연산을 먼저 하고 or 연산을 함.
a = True
b = False
c = False
d = True
a and b or c and d
#(a and b) or (c and d) False
a = True
b = False
c = False
d = True
a and not b or c and d
# (a and (not b)) or (c and d) True
단락회로평가
a = 'hello'
b = ''
print(a or b) # a가 True 이므로 뒤를 안보고 바로 hello.
a = ''
b = 'world'
print(a or b) # world a가 False라서 뒤까지 봄.
username = 'nickname'
username = username or '이름을 정하지 않았습니다.'
# username이 비었으면 이름을 정하지 않았습니다.
할당연산자
x /= 1
x //= 1
x **= 1
x *= 1
x %= 1
id 연산자, is 연산자, is not 연산자
is 는 주소값을 비교.
a = 10000
b = 10000
print(a is b) # False
print(id(a), id(b)) # (137880992029264, 137880992034352)
a = [1, 2, 3]
b = [1, 2, 3]
print(a is b) # False 주소값이 다름.
in 구문
주의) is 는 is not 이고, in 은 not in
10 in [10, 20, 30] # True
'h' in 'hello world' # True
'hell' not in 'hello world' # False
'wolf' not in 'hello world' # True
a = {'key1': 'value1', 'key2': 'value2'} #딕셔너리
b = {10, 10, 20} # set
10 in b # 출력: True
{10} in b # 출력: False, 주의
{10, 20} in b # 출력: False, 주의
'key1' in a # 출력: True
'value1' in a # 출력: False 밸류값으로는 in 불가
('key1', 'key2') in a # 출력: False
{'key1':'value1'} in a # error
연산자 우선순위
-2 ** 2 # -4
True * True and True + False # 1
# ((True * True) and (True + False))
# 복합 할당 연산자가 가장 나중!
a = 10
a += 10 * 100
a
a = 10
a *= 10 + 100
a
'Python' 카테고리의 다른 글
Python(8) 리스트 (0) | 2023.09.12 |
---|---|
Python(7) 함수 (0) | 2023.09.12 |
Python(5) 메서드 체이닝, 형변환 (0) | 2023.09.11 |
Python(4) 논리 자료형, None 자료형 (0) | 2023.09.11 |
Python(3) 문자열 자료형 (1) | 2023.09.08 |