본문 바로가기
PROGRAMMING/PYTHON

[Python] 연산자

by 안녕나는현서 2021. 4. 25.
728x90

- 산술 연산자 : + - * / // % **

  • / : 일반적인 나눗셈으로 소수점까지 반환 (결과가 항상 float)
  • // : 나눗셈의 몫
  • % : 나눗셈의 나머지
  • 몫과 나머지 동시에 출력 : divmod(a, b)
# 숫자형 연산

a = 3
b = 5

print('더하기 : ', a+b)
print('빼기 : ', a-b)
print('곱하기 : ', a*b)
print('나누기 : ', a/b)
print('나누기 몫 : ', a//b)
print('나누기 나머지 : ', a%b)
print('지수 : ', a**b)

# 문자열 더하기

str1 = '안녕'
str2 = '하세요'
print(str1+str2)
print('')

# 숫자와 문자열 더하기
num1 = 10
str3 = '7'
#print(num1+str3)
# -> 정수+문자열은 연산 불가

print(str(num1)+str3)
print(num1+int(str3))
# str : 숫자형 ->  문자열
# int : 문자열 -> 정수
# float : 문자열 -> 실수

# 키보드로 입력받는 방법

input('정수를 입력하세요 >>')
# input으로 입력받은 값은 무조건 문자열 -> 숫자로 활용하기 위해서는 변환필요(int/float)

# 문자열 곱하기

s = 'x'
print(s*10)

 

- 대입 연산자, 복합 연산자

# 대입 연산자

a = 3
b = a + 1
# 복합 연산자

print('a : ', a)
print('b : ', b)

a += b
# a = a+b -> a += b

print('a : ', a)

# 치환

# 1) 빈 공간 활용
num1 = 2
num2 = 5
print('치환 전 : ', num1, num2)

temp = 0

temp = num2
num2 = num1
num1 = temp
print('치환 후 : ', num1, num2)
print('')

# 2) 대입
num1 = 2
num2 = 5
print('치환 전 : ', num1, num2)

num1, num2 = num2, num1
print('치환 후 : ', num1, num2)

 

- 비교 연산자 : > < >= <= == !=

a = 3
b = 7

print(a>b)
print(a<=b)
print(a==b) #같다
print(a!=b) #같지 않다

# 결과값는 논리형(True/False)로 출력

 

- 논리 연산자 : not, and, or

# not 논리 : 논리값을 뒤집는 역할

a = 3
b = 7
not a < b

# 논리 and 논리 : 두 논리가 모두 True일 경우만 True

print(3 < 5 and 10 > 20) #T/F
print(3 < 5 and 10 < 20) #T/T

# 논리 or 논리 : 두 논리 중 하나라도 True이면 True

print(3 > 5 or 10 > 20) #F/F
print(3 < 5 or 10 > 20) #T/F

 

- 삼항 연산자

# a if 조건식 else b : True일 경우 a, False일 경우 b 출력

score = 80
'합격' if score>=60 else '불합격'

 

- 비트 연산자

  • & : 양변의 비트 값 모두 1일 경우에만 1을 반환
  • | : 양변의 값 모두 0일 경우에만 0을 반환
  • ^ : 양변의 값이 다를 경우 1, 같을 경우 0을 반환
  • ~ : 비트 값이 1일 경우 0, 0일 경우 1을 반환
  • << : 좌변의 값을 우변의 값 만큼 비트를 왼쪽으로 이동
  • >> : 좌변의 값을 우변의 값 만큼 비트를 오른쪽으로 이동

a, b = 2, 3   # 0010, 0011

print(a&b)    # 0010 & 0011 -> 0010
print(a|b)    # 0010 | 0011 -> 0011
print(a^b)    # 0010 | 0011 -> 0001
print(~a)     # ~0010 -> 1101

a = 8        # 8비트로 0000 1000

print(a>>1)  # 0000 1000 -> 0000 0100 (오른쪽으로 이동할 때마다 정수 값이 반으로 줄어듦)
print(a<<1)  # 0000 1000 -> 0000 1000 (왼쪽으로 이동할 때마다 정수 값이 두 배가 됨)

 

- 연산자 우선순위

  • 괄호가 최우선
  • 산술 연산이 비트 연산보다 우선
  • 관계 연산이 논리 연산보다 우선
728x90

'PROGRAMMING > PYTHON' 카테고리의 다른 글

[Python] 딕셔너리  (0) 2021.04.25
[Python] 반복문  (0) 2021.04.25
[Python] 리스트, 튜플  (0) 2021.04.25
[Python] 조건문  (0) 2021.04.25
[Python] 변수, 자료형(숫자형, 문자열)  (0) 2021.04.25

댓글