1. 산술 연산자
-
+ # 덧셈 - # 뺄셈 * # 곱셈 / # (실수) 나눗셈 // # 정수 나눗셈, 몫 % # 나머지 ** # 제곱
- 곱셈 :
xyx*y - 정수와 부동소수점 수를 혼합 연산하면 수식의 결과는 항상 부동소수점이다.
8+4.0=12.0 - 파이썬에서 /(나눗셈)은 항상 부동소수점으로 계산된다.
7/4=1.75 - 몫과 나머지는 divmod()함수를 이용하여 계산할 수도 있다.
x=10 y=3 quotient,ramainder=divmod(x,y) print(quotient,ramainder) # 3 1 - 거듭제곱 **
- 지수 연산자는 다른 연산자보다 높은 우선순위
10*2**7=10x128 - 오른쪽에서 왼쪽으로 계산
2**(2**3)=256
- 지수 연산자는 다른 연산자보다 높은 우선순위
2. 할당 연산자
-
x = 1
- "같다"는 의미가 아니라 변수에 값을 저장하는 연산자
- 왼쪽은 반드시 변수, 오른쪽은 어떠한 수식도 가능
- 하나의 값을 여러 변수에 할당하는 것도 가능
x=y=z=0 - 동시에 여러 변수에 값을 할당하는 것도 가능
x,y,z=10,20,30 - 변수 값을 교환하는 것도 가능
x,y=y,x
3. 복합 할당 연산자
-
+= -= *= /= %= x+=y #의미: x=x+y x=1000 x+=2 #1002 x-=2 #1000 - 할당연산자와 다른 연산자를 합쳐 놓은 연산자, 소스를 간결하게 만들 수 있다.
4. 관계 연산자
-
== != > < >= <= - 결과가 True 또는 False
- 부울 변수
- 관계 연산자의 결과값은 True 또는 False => 부울값 Boolean value
- 부울값을 저장하는 변수를 부울 변수
- 부울 변수는 True, False 중 하나의 값을 갖는다.
radius=100 flag=(radius>32) print(flag) # True - 변수에 True, False를 직접 저장할 수도 있다.
powerOn=True - if-else 문에도 사용 가능
expensive=price>20000 if espensive: shipping_cost=0 else: shipping_cost=3000
- 문자열 비교
s1="ABC" s2="ABC" print(s1==s2) #Trues1="ABC" s2="BCB" print(s1>s2) #True
- 알파벳 순으로 앞에 있어서 True
- 기본적으로 사전 순 / 모든 대문자는 소문자보다 앞에 있는 것으로 간주
- 스페이스 문자는 모든 알파벳 문자보다 앞에 있는 것으로 간주 / 숫자는 문자보다 앞에 있는 것으로 간주.
- 실수와 실수 비교
실수와 실수를 비교할 때는 복잡한 실수가 정확히 표현되지 않아 오차를 감안
from math import sqrt n=sqrt(3.0) print(n*n==3.0) #Falsefrom math import sqrt n=sqrt(3.0) print(abs(n*n-3.0)<0.00001) # Trueimport math math.isclose(3.14,3.15) # False math.isclose(3.141590003,3.141590002) #True - 관계 연산자의 우선 순위는 산술 연산자보다 작아서 number-1>100 같이 괄호 없이 쓸 수 있다.
5. 비트 연산자
-
~ #비트 NOT : 0이면 1로, 1이면 0으로 ^ #비트 XOR : 다르면 1, 같으면 0 & #비트 AND : 두 개가 1일 때만 1 | #비트 OR : 하나라도 1이면 1 - 정수를 이루고 있는 각각의 비트를 가지고 작업할 수 있는 연산자
a=0b00001101 b=0b00001010 print(a&b,a|b,a^b) print(bin(a&b),bin(a|b),bin(a^b)) # 출력 # 8 15 7 # ob1000 0b1111 0b111 # a&b : 0b00001000 => 8 # a|b : 0b00001111 => 15 # a^b : 0b00000111 => 7a=0b00001101 print(~a,bin(~a)) # 출력 # ~a : 0b11110010 - 비트 이동 연산자
<< # 왼쪽으로 이동 >> # 오른쪽으로 이동 a=0b01101101 print(a<<1,a>>1) print(bin(a<<1),bin<a>>1)) # 출력 # a<<1 : 0b11011010 => # a>>1 : 0b00110110
6. 연산자의 우선순위
| 0. 괄호 | |
| 1. 지수 | ** |
| 2. 단항 연산자 | ~ + - |
| 3. 곱셈 나눗셈 나머지 | * / // % |
| 4. 덧셈 뺄셈 | + - |
| 5. 비트 이동 | >> << |
| 6. 비트 AND | & |
| 7. 비트 OR, XOR | | ^ |
| 8. 비교 연산자 | < > <= >= |
| 9. 동등 연산자 | == != |
| 10. 할당, 복합 할당 연산자 | = += -= *= 등 |
| 11. 동등 연산자 | is, is not |
| 12. 소속 연산자 | in, not in |
| 13. 논리 연산자 | not, or, and |
1+2*3 = 7
10+20/2 = 20.0
(10+20)/2 = 15.07. 타입 변환과 반올림
- 정수와 부동소수점수를 동시에 사용하여 수식 만들면 자동으로 부동소수점형으로 변환 => 자동적인 타입 변환
3*1.23=3.69 - int( ), float( ), round( )를 이용하여 변환
x=3.14 int(x) # 3 y=3 float(y) # 3.0 x=1.723456 round(x) # 2 => 반올림 x=1.723456 round(x,2) # 1.72 => 소수점 2번째 자리까지 반올림 - 변수 값을 변경하는 것이 아니라 변환시켜 제공하는 것이므로 변수 x 값은 타입 변환 이후에도 전혀 변화없다.
-
print(f"{avg:02f}") # 소수점 2번째 자리까지
8. 예제 풀이
'Programming > Python' 카테고리의 다른 글
| [Python] 조건문 (0) | 2024.04.21 |
|---|