[제로베이스] [파이썬] 연산자

한결·2023년 12월 7일
0
post-thumbnail

0. 연산자?

연산자란?
특정한 작업을 하기 위해서 사용하는 기호
산술 연산자 : +, -, *, /, %, //, **
할당 연산자 : =, +=, -=, *=, /=, %=, //=
비교 연산자 : >, >=, <, <=, ==, !=
논리 연산자 : and, or, not

1. 산술 연산자

1-1. 덧셈

✅ 숫자 덧셈

print(1+2)
print(1+3.04)
3
4.04

✅ 문자 덧셈

print('가나다'+'abc')
가나다abc

보는 것과 같이 문자를 더하면 순서대로 나열되어 출력되는 것을 확인할 수 있다.

✅ 문자와 숫자를 더하면?

print(123+'abc')

TypeError: unsupported operand type(s) for +: 'int' and 'str'

컴퓨터는 이것을 연산할 수 없다😢

1-2. 뺄셈

✅ 숫자 뺄셈

print(1-2)
print(1-3.04)
-1
-2.04

✅ 문자 뺄셈

print('가나다'-'abc')

TypeError: unsupported operand type(s) for -: 'str' and 'str'

문자열끼리는 뺄셈이 불가능하다!

1-3. 곱셈

✅ 숫자 곱셈

print(1*2)
print(2.5*3.02)
2
7.55

✅ 문자 곱셈

print('가나다'*3)
가나다가나다가나다

1-4. 나눗셈

✅ 숫자 나눗셈

print(100/3)
33.333333333333336

✅ 문자 나눗셈

print('가나다'/3)

TypeError: unsupported operand type(s) for /: 'str' and 'int'

문자열끼리 나눗셈도 안된다!

1-5. 나머지와 몫

초등학교 때 20÷3을 어떻게 표현했는지 기억나는가?
기억이 난다면 몫은 '6', 나머지는 '2'로 배웠다. 몫과 나머지를 표현해주는 연산자가 파이썬에 있는데 바로 //%이다.

print(20//3)
print(20%3)
6
2

❗이런 방법 말고도 divmod()라는 함수도 있다.

print(divmod(20,3))
print(divmod(35,4))
(6, 2)
(8, 3)

1-6. 거듭제곱

2의 3제곱이나 2의 세제곱근 등을 파이썬으로 표현하는 방법은 **을 사용하면 된다.

print(2**3)
print(2**(1/3))
8
1.2599210498948732

❗이런 방법 말고도 제곱근을 구해주는 sqrt(), 밑과 지수를 입력하면 값을 구해주는 pow()라는 함수도 있다.

import math

print(math.sqrt(5))
print(math.pow(2,3))
print(math.pow(2,1/3))
2.23606797749979
8.0
1.2599210498948732

2. 복합연산자

✅ 할당연산자 : 오른쪽 연산자를 왼쪽에 할당

✅ 복합연산자

+= : 덧셈 연산 후 할당
-= : 뺄셈 연산 후 할당
*= : 곱셈 연산 후 할당
/= : 나눗셈 연산 후 할당
%= : 나머지 연산 후 할당
//= : 몫 연산 후 할당
**= : 거듭제곱 연산 후 할당

a=20
a+=10
print(a)
30

이 상황에서 a는 변화가 없는 한 영원히 30이라는 값으로 저장되어 있다.

3. 비교연산자

3-1. 숫자 비교

> : 왼쪽 수가 오른쪽보다 큰지 참 거짓 판별 (결과는 항상 bool)
< : 왼쪽 수가 오른쪽보다 작은지 참 거짓 판별
>= : 왼쪽 수가 오른쪽보다 크거나 같은지 참 거짓 판별
>= : 왼쪽 수가 오른쪽보다 작거나 같은지 참 거짓 판별

print(20>30)
print(20<30)
print(20<=20)
False
True
True

3-2. 문자 비교

✅ 문자끼리의 비교는 아스키 코드를 이용해 비교된다.

print('A'>'S')
False

❗ 아스키 코드는 ord() 함수로 확인이 가능하고, 반대로는 chr() 함수가 있다.

print(ord('A'))
print(chr(66))
65
B

✅ 문자열끼리의 크기 비교는 사전식 배열을 따른다. (사전 앞에 있을 수록 작은 취급!)

print('Apple'>'Banana')
print('Cookie'>'Banana')
False
True

✅ 문자열끼리 같은지 다른지 여부는 ==!=로 확인한다.

print('Apple'=='Apple')
print('Apple'!='Apple')
print('Apple'=='Banana')
print('Apple'!='Banana')
True
False
False
True

4. 논리연산자

논리연산자 : and,or,not

and

A and B : A와 B 모두 True여야 True

print(True and True)
print(True and False)
print(False and True)
print(False and False)
True
False
False
False

or

A or B : A 또는 B 둘 중 하나만 True여도 True

print(True or True)
print(True or False)
print(False or True)
print(False or False)
True
True
True
False

not

not A : A의 상태를 부정

print(not True)
print(not False)
False
True
profile
낭만젊음사랑

0개의 댓글