파이썬(Python)_연산자

Youngboy_Engineer·2021년 7월 11일
0

파이썬(Python)

목록 보기
3/8
post-thumbnail

프로그램 로직 구성의 필수 요소 = 연산자

1. 산술, 대입 연산자

  • 산술 연산자
연산자의미
+값을 더하기a = 3 + 2 # a는 5
-값을 빼기a = 3 - 2 # a는 1
*값을 곱하기a = 3 * 2 # a는 6
/좌변의 값을 우변의 값으로 나누기a = 3 / 2 # a는 1.5
//좌변의 값을 우변의 값으로 나눈 몫a = 3 // 2 # a는 1
%좌변의 값을 우변의 값으로 나눈 나머지a = 3 % 2 # a는 1
**좌변의 값을 우변의 값으로 제곱a = 3 ** 2 # a는 9

1) 산술 연산자의 기본 동작

1 >>> a, b = 3, 2
2 >>> print("{0} + {1} = {2}".format(a, b, a + b))
3 3 + 2 = 5
4 >>> print("{0} - {1} = {2}".format(a, b, a - b))
5 3 - 2 = 1
6 >>> print("{0} * {1} = {2}".format(a, b, a * b))
7 3 * 2 = 6
8 >>> print("{0} / {1} = {2}".format(a, b, a / b))
9 3 / 2 = 1.5
10 >>> print("{0} // {1} = {2}".format(a, b, a // b))
11 3 // 2 = 1
12 >> print("{0} % {1} = {2}".format(a, b, a % b))
13 3 % 2 = 1
14 >>> print("{0} ** {1} = {2}".format(a, b, a ** b))
15 3 ** 2 = 9

2) 산술 연산자 우선 순위

1 >>> a, b, c = 2, 3, 5
2 >>> print((a + b) - c)
3 0
4 >>> print(b - c + a)
5 0
6 >>> print(a + (b * c)
7 17
8 >>> print(a * b / c)
9 1.2
  • 괄호( ) 의 우선순위가 가장 높음
  • 우리가 기존에 알고 있는 수학에서의 연산 우선 순위와 같다.

3) 문자형과 숫자형 연산

1 >>> a, b, c = "2", "3", 4
2 >>> print(a + b)
3 23
4 >>> print(int(a) + int(b))
5 5
6 >>> print(b + c) # TypeError 발생 → 문자열 "3" 이 정수 4와 문자열 접합(+) 연산 시도를 했기 때문
7 >>> print(int(b) + c)
8 7 # 숫자형
9 >>> print(b + str(c))
10 34 # 문자형



  • 대입 연산자
연산자의미
=대입 (할당)a = 3
+=좌변의 변수에 우변의 값을 더해서 좌변의 변수에 대입a += 2 # a는 5
-=좌변의 변수에 우변의 값을 빼서 좌변의 변수에 대입a -= 2 # a는 1
*=좌변의 변수에 우변의 값을 곱해서 좌변의 변수에 대입a *= 2 # a는 6
/=좌변의 변수를 우변의 값으로 나누어 좌변의 변수에 대입a /= 2 # a는 1.5
//=좌변의 변수를 우변의 값으로 나눈 몫을 좌변의 변수에 대입a //= 2 # a는 1
%=좌변의 변수를 우변의 값으로 나눈 나머지를 좌변의 변수에 대입a %= 2 # a는 1
**=좌변의 변수를 우변의 값으로 제곱해서 좌변의 변수에 대입a **= 2 # a는 9

2. 관계, 논리, 비트 연산자

  • 관계 연산자
연산자의미
==양변의 값이 같으면 True를 반환a,b = 3,2
a==b # False
!=양변의 값이 다르면 True를 반환a!=b # True
>좌변의 값이 우변의 값보다 크면 True를 반환a > b # True
<좌변의 값이 우변의 값보다 작으면 True를 반환a < b # False
>=좌변의 값이 우변의 값보다 크거나 같으면 True를 반환a >= b # True
<=좌변의 값이 우변의 값보다 작거나 같으면 True를 반환a <= b # False



  • 논리 연산자 : 선택의 문제에서 특정 조건을 만족하는지를 검사하기 위한 조건식을 만들 때 사용
연산자의미
and양변의 값 모두 True일 경우에만 True를 반환a,b = True, False
a and b # False
or양변의 값 모두 False일 경우에만 False를 반환a,b = True, False
a or b # True
notTrue일 경우, False일 경우 True를 반환a = True
not a # False
1 >>> gender, age = "male", 20
2 >>> gender == "female" and age >=18
3 False
4 >>> gender == "female" or age >=18
5 True
6 >>> gender == "female" or age < 18
7 False

※ 관계 연산자가 논리 연산자에 우선하며,
논리 연산자 중 not 연산자가 and / or 연산자 보다 우선 순위이다.

  • 비트 연산자
연산자의미
&양변의 비트 값 모두 1일 경우에만 1을 반환x, y = 1, 0
x & y # 0
|양변의 값 모두 0일 경우에만 0을 반환x, y = 1, 0
x | y # 1
^양변의 값이 다를 경우 1, 같을 경우 0을 반환x, y = 1, 0
x ^ y # 1
~비트 값이 1일 경우 0, 0일 경우 1을 반환x = 1
~x # -2
<<좌변의 값을 우변의 값만큼 비트를 왼쪽으로 이동x = 4
x << 1 # 8
→ 정수값이 2배로 증가
>>좌변의 값을 우변의 값만큼 비트를 오른쪽으로 이동x = 8
x >> 1 # 4
→ 정수값이 반으로 감소

3. 연산자 우선 순위

  • 다양한 연산자 종류들의 우선 순위
    1) 괄호가 최우선
    2) 산술 연산이 비트 연산보다 우선
    3) 관계 연산이 논리 연산보다 우선

해당 포스팅은 아래의 사이트를 참고하여 작성하였습니다.
SW Expert Academy https://swexpertacademy.com/

profile
개발 공부를 막 시작한 주니어입니다.

0개의 댓글