TIL/Python

241116 인공지능을 위한 파이썬 - 1주차_1

beady 2024. 11. 16. 20:32

파이썬에서 변수를 설정하기

 

  • 파이썬에서 변수를 선언하기
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

 

먼저 복합 대입 연산자 종류별로 쭉 코드를 작성해 보았다. 실제로 파이썬에서 맞는지 확인해 보자.

correct!

 

 

 

  • 비트 연산자 : 이진수 수준에서 연산을 수행할 때 사용함

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언어에서 다양하게 활용된다고 함

강사님이 비트 연산자는 파이썬에서 자주 사용하진 않지만, 알고는 있어야 하는 내용이라고 하셔서 이해가 안 가는 부분은 좀 더 찾아보고 나름대로 정리를 하게 되었음