1. 파이썬의 개요
1.1. 한 줄에 여러가지 구문 처리
print("Hello"); print("Hello")
1.2. 파이썬의 들여쓰기가 구문을 결정
- 들여쓰기는 스페이스바를 4번 누르거나,
- 텍스트 편집기를 통해 자동으로 된다.
if(x<10):
print("10보다 작은 수")
2. 파이썬의 변수
2.1. 변수 선언하기
Variable = Value
# Variable: 변수 이름 지정
# Value: 변수에 저장할 값 지정
# num이라는 변수에, 10이라는 값을 저장
num = 10
2.2. 형변환하기
- int(Value): Value를 정수형으로 형변환한다.
- float(Value): Value를 실수형으로 형변환한다.
- str(Value): Value를 문자열로 형변환한다.
a = 10
a = float(10) # 소수점으로 형변환
b = int(10.0)
c = str(10)
print(type(a))
print(type(b))
print(type(c))
print(a)
# 실수형에서 정수형으로 형변환 시 소수점 이하 내림처리
a = 10.8
b = 10.2
a = int(a) # a = 10
b = int(b) # b = 10
print(a+b) # a+b = 20
a = '23.23'
b = float(a)
print(a)
#print(a+b) #문자열과 숫자(실수)는 연산이 불가능하다.
2.3. 파이썬 변수의 주소 부여방법
- 파이썬의 모든 것은 객체이다. 즉, 파이썬의 변수도 하나의 객체이다.
- 스택에는 메모리주소를 가지고 있고, 힙에서 실제 값을 가지고 있다.
- 변수는 값이 보관되어 있는 곳의 주소값을 가지고 있음.
# 파이썬에서 같은 값이면, 변수 주소이 같다. (얕은 복사)
x = 10
y = 10
z = '10'
print(hex(id(x)))
print(hex(id(y)))
print(hex(id(z)))
# 하지만 값이 달라지면, 변수 주소도 달라진다. (깊은 복사)
x = 9
y = 10
print(hex(id(x)))
print(hex(id(y)))
# 객체를 참조하면 ref count가 증가한다.
import sys
x = 10
y = 10
z = 10
print(sys.getrefcount(x))
# None/del을 통해 객체와의 연결을 끊어줄 수 있다.
y = None
del z
print(sys.getrefcount(x))
3. 연산자
3.1. 산술 연산자
- 산술 연산자는 두 수(정수,실수)를 계산하기 위한 연산자
- 피연산자는 무조건 2개만 가능하다.
이름 |
문법 |
함수 |
더하기(Addition) |
a + b |
add(a, b) |
빼기(Subtraction) |
a - b |
sub(a, b) |
부정 (산술)(Negation (Arithmetic)) |
- a |
neg(a) |
곱하기(Multiplication) |
a * b |
mul(a, b) |
나누기: 전체결과(Division) |
a / b |
truediv(a, b) |
나누기: 몫(Division) |
a // b |
floordiv(a, b) |
모듈로: 나머지(Modulo) |
a % b |
mod(a, b) |
3.2. 증감 연산자
- 파이썬은 "++a; a++;" 와 같은 연산자를 지원하지 않는다.
a = 1
a = a + 1; a+=1
3.3. 비교 연산자
- 두 변수를 비교하는데 사용하는 연산자
- 연산의 결과로 Bool형이 반환된다.
- 예시) a=1이고 b=2일 때, a != b이면 False.
이름 |
문법 |
함수 |
대소비교(Ordering) |
a < b |
lt(a, b) |
대소비교(Ordering) |
a <= b |
le(a, b) |
동등성(Equality) |
a == b |
eq(a, b) |
다름(Difference) |
a != b |
ne(a, b) |
대소비교(Ordering) |
a >= b |
ge(a, b) |
대소비교(Ordering) |
a > b |
gt(a, b) |
3.4. 논리 연산자
- 논리 연산자: 두 개 이상의 조건을 물어볼 때 사용.
- 순서가 헷갈릴 때는 괄호로 구분해줘야 한다.
이름 |
설명 |
문법 |
함수 |
비트별 논리곱(Bitwise And) |
양쪽이 모두 True일 때만 True |
a & b |
and_(a, b) |
비트별 논리합(Bitwise Or) |
어느 한 쪽이 True이면 True |
a | b |
or_(a, b) |
비트별 반전(Bitwise Inversion) |
원래 있는 조건이 반전이 됨 (True <-> False) |
~ a |
invert(a) |
비트별 배타적 논리합(Bitwise Exclusive Or) |
서로 다르면 True |
a ^ b |
xor(a, b) |
3.5. 비트 연산자
이름 |
문법 |
함수 |
오른쪽으로 시프트(Right Shift) |
a >> b |
rshift(a, b) |
왼쪽으로 시프트(Left Shift) |
a << b |
lshift(a, b) |
4. 불 자료형
4.1. 불 자료형이란?
- 참(True)과 거짓(False)로 구분되는 자료형
- 이 자료형을 이용해, 조건분기나 반복문의 조건으로써 사용가능
4.2. 불 형변환
bool(Variable)
# Variable: bool형으로 형변환 할 변수 지정
a = 'Python'
b = ''
print(bool(a))
print(bool(b))
int/float/str(Variable)
# Variable: 다른형으로 형변환 할 변수 지정
a = True
print(int(a))
print(float(a))
print(str(a))
4.3. Bool을 숫자로 활용하기
- True는 1로, False는 0으로 사용됨
- 따라서, 조건을 제시할 때 1이나 0으로 제시해도 된다.
while 0:
print("해당 구문은 실행되지 않습니다.")