파이썬에서 변수를 설정하기
- 파이썬에서 변수를 선언하기
name = "beady"
age = 100
name은 "beady"라는 문자열을 저장한 변수가 됨
age는 100이라는 숫자를 저장한 변수가 됨
파이썬에서 변수는 정해져 있지 않고, 사용하고 싶은 이름으로 사용 가능
= 은 변수에 값을 할당해주는 할당 연산자의 역할을 함
- 변수를 재할당하기
a = 10
a = 20
a를 20으로 다시 할당하면, 기존의 10값은 사라지고 20만 남게된다.
- 여러 변수에 값 할당하기
a, b, c = 1, 2, 3
각각, a = 1 / b = 2 / c = 3 의 값을 가지게 됨
x = y = z = 1
x, y, z 모두 1의 값을 가지게 됨
이외에도 파이썬에서 사용되는 여러 연산자의 종류에 대해 알아보자.
- 산술 연산자 : 기본적인 사칙연산 외에도 나머지 또는 몫을 구하거나 거듭제곱이 가능함
5 + 2 # 7
5 - 2 # 3
5 * 2 # 10
5 / 2 # 2.5
5 % 2 # 1 (나머지)
5 ** 3 # 125 (거듭제곱)
5 // 2 # 2 (몫)
- 비교 연산자 : 두 값을 비교해 참(True) or 거짓(False)를 반환
부등호는 SQL에서도 일상에서도 많이 사용해서 익숙하지만, == / != 은 많이 사용해봐야 익숙해질 것 같음
x = 20
y = 10
print(x == y) # (서로 값이 같은가?) False
print(x != y) # (서로 값이 다른가?) True
print(x > y) # True
print(x < y) # False
print(x >= y) # True
print(x <= y) # False
- 논리 연산자 : True, False를 결합해 새로운 True, False(논리값)을 반환
a = True
b = False
print(a and b) # True and False = False / 두 조건이 모두 참일 때만 True
print(a or b) # True or False = True / 두 조건 중 하나라로 참일 때 True
print(not a) # not True = False / 논리값을 반대로 뒤집음
- 복합 대입 연산자 : 값을 구한 후 다시 변수에 할당할 때 사용
x = 5 # 변수 x에 5라는 숫자 할당
x += 5 # x에 5를 더한 후 할당
print(x) # 10
x -= 4 # x에 4를 뺀 후 할당
print(x) # 6
x *= 2 # x에 2를 곱한 후 할당
print(x) # 12
x /= 2 # x에 2를 나눈 후 할당
print(x) # 6
x %= 4 # x에 4를 나눈 나머지를 구한 후 할당
print(x) # 2
x **= 3 # x에 3제곱 후 할당
print(x) # 8
x //= 4 # x에 4를 나눈 몫을 구한 후 할당
print(x) # 2
먼저 복합 대입 연산자 종류별로 쭉 코드를 작성해 보았다. 실제로 파이썬에서 맞는지 확인해 보자.
- 비트 연산자 : 이진수 수준에서 연산을 수행할 때 사용함
1. & 연산자(비트 AND) : 두 개의 비트가 모두 1일 때 1을 반환함
0 & 0 # 0
0 & 1 # 0
1 & 0 # 0
1 & 1 # 1
2. | 연산자(비트 OR) : 두 개의 비트 중 하나라도 1이면 1을 반환함
0 | 0 # 0
0 | 1 # 1
1 | 0 # 1
1 | 1 # 1
3. ^ 연산자(비트 XOR) : 두 개의 비트가 서로 다른 경우에 1을 반환함
0 ^ 0 # 0
0 ^ 1 # 1
1 ^ 0 # 1
1 ^ 1 # 0
4. ~ 연산자(비트 NOT) : 비트를 0에서 1로, 1에서 0으로 반전시킴. 보수 연산이라고도 함.
~ 0 -> 1
~ 1 -> 0
비트 NOT 연산에서 주의할 점은 양수를 음수로, 음수를 양수로도 반전시킨다는 것
※ 최상위 비트는 부호 비트로 사용 / 부호 비트가 0이면 양수, 1이면 음수
~ 0 # 0의 이진수 00을 반전시키면 11
# 최상위 비트가 1이므로 -2 + 1 = -1
~ 1 # 1의 이진수 01을 반전시키면 10
# 최상위 비트가 1이므로 -2 + 0 = -2
~ 2 # 2의 이진수 010을 반전시키면 101
# 최상위 비트가 1이므로 -4 + 1 = -3
~ 3 # 3의 이진수 011을 반전시키면 100
# 최상위 비트가 1이므로 -4 + 0 = -4
~ 4 # 4의 이진수 0100을 반전시키면 1011
# 최상위 비트가 1이므로 -8 + 2 + 1 = -5
맨 앞에 가상의 최상위 비트가 있다고 생각하고 반전시켜 1이면 그 자릿수의 마이너스로 생각하고 값을 구했다.
파이썬에서도 실행하니 값이 동일했고 이게 나에게는 가장 편한 방식이긴 한데 이해하기가 와이리 빡셉니까.. 100% 이해했냐고 한다면 글쎄요 모르겄어유
5. << / >> (왼쪽 / 오른쪽) 시프트 연산자 : 해당 방향으로 2진수 자릿수를 한 칸씩 옮김
1 << 1 # 01 을 왼쪽으로 한 칸씩 옮기면 10 = 2
2 << 1 # 10 을 왼쪽으로 한 칸씩 옮기면 100 = 4
1 >> 1 # 01 을 오른쪽으로 한 칸씩 옮기면 00 = 0
2 >> 1 # 10 을 오른쪽으로 한 칸씩 옮기면 01 = 1
비트 연산자는 특수한 프로그래밍이나 알고리즘에서 종종 활용되고, 일반적으로 하드웨어 단에서 많이 처리되고 C언어에서 다양하게 활용된다고 함
강사님이 비트 연산자는 파이썬에서 자주 사용하진 않지만, 알고는 있어야 하는 내용이라고 하셔서 이해가 안 가는 부분은 좀 더 찾아보고 나름대로 정리를 하게 되었음