개발/Python
#01 객체와 변수 기본자료형, 연산자
dev-bleck
2022. 7. 21. 21:02
값(=객체), 변수, 키워드
- 값(=객체)
- 프로그래밍에서 처리해야하는 대상
- 수, 문자, 이미지, 음성 등
- 변수
- 값을 담을 수 있는 공간
- 객체의 위치(주소)를 갖고 있는 공간
- 키워드(Keyword)
- 예약어(문법적인 요소), ex) print, if ...
- 키워드를 변수명으로 하면 안됨
x = 1004
x
>>> 1004
y = x
y # x의 주소값을 그대로 y에 넣음
>>> 1004
id(x), id(y) # id : 주소 확인 함수, 주소값이 같음
>>> (140030205529040, 140030205529040)
x = 1001
y = 1001
id(x), id(y) # 주소값이 다름
>>> (140030205220048, 140030205219984)
변수를 왜 사용하는가?
- 코드의 재활용성과 가독성을 높여주고, 중복을 제거하여 유지보수를 용이하게 함
특별한 변수 언더바(_
)
- 필요없는 값을 받아내고 처리할 때 사용
- 대화형 환경에서 마지막으로 실행된 반환 결과를
_
에 자동 할당
a = 3
a
`_`
>>> 3
상수
- 변하지 않는 수
- 프로그램 시작부터 종료까지 변하지 않는 변수
- 파이썬에서는 상수를 지원해주지 않는다
- 대문자로 작성
변수 이름 규칙
- 대소문자를 구분
- 알파벳, 숫자, 언더바(
_
)만 이용 - 변수명 첫 글자에 숫자는 문법 오류 발생
- 파이썬 키워드 및 정의된 함수, 클래스 명은 사용 불가
1a =1
1a
>>> SyntaxError: invalid syntax
if = 1
if
>>> SyntaxError: invalid syntax
자료형
- 파이썬은 기본적으로 4가지 자료형이 있음
int
: -1, 0, 3 등의 정수를 의미float
: -1.5, 3.14, 3.0 등의 실수를 의미bool
: 참(True) or 거짓(False)을 나타내는 논리자료형을 의미str
: 문자열을 의미
a = 3
type(a)
>>> int
a = 1.0
type(a)
>>> float
a = True
type(a)
>>> bool
a = "Python"
type(a)
>>> str
자료형 변환
int_value = 3
float_value = 3.14
bool_value = True
str_value = '3'
int(float_value)
>>> 3
float(int_value)
>>> 3.0
str(bool_value)
>>> 'True'
bool(str_value) # 문자열이 빈칸일 경우 False 반환
>>> True
print(bool(0))
>>> False
print(bool(1))
>>> True
None
- null값과 같은 의미
- 없음을 나타내는 특수한 객체
변수의 이름을 지을 때 관례
- 명사로 시작하며, 의미있는 단어로 명명
- 소문자로만 작성하며(상수는 대문자), 단어와 단어 사이를 언더바(
_
)를 이용해 이어줌(snake case) - 논리자료형인
bool
자료형을 담는 변수명은is_
로 시작하며, 뒤에 나오는 명사가 참인지 거짓인지를 추측하게 한다
student_name = "Daniel"
is_number = False
연산자
산술 연산자
- 산술연산의 결과를 반환한다.
+
,-
,*
,/
,**
,//
,%
print(5+2) # 더하기
print(5-1) # 빼기
print(5*2) # 곱하기
print(5/2) # 나누기
print(5**2) # 거듭제곱
print(5//2) # 몫
print(5%2) # 나머지
대입 연산자
- 값을 변수에 할당한다
- 산술연산결과의 값을 변수에 할당한다
=
,+=
,-=
...
num = 3
num = num + 3 # num += 3
num
>>> 6
num = 3
num = num - 3 # num -= 3
num
>>> 0
num = 3
num = 3 ** 2 # num **= 2
num
>>> 9
num = 3
num = 3 // 2 # num //= 2
num
>>> 1
비교 연산자
- 변수 or 객체를 비교하여
bool
객체를 반환 >
,<
,>=
,<=
,==
,!=
a = 5
b = 3
print(a > b) # a가 b보다 크다
>>> True
print(a < b) # a가 b보다 작다
>>> False
print(a >= 5) # a가 5보다 크거나 같다
>>> True
print(b <= 3) # b가 3보다 작거나 같다
>>> True
print(a == b) # a는 b와 같다
>>> False
print(a != b) # a는 b와 다르다
>>>True
논리 연산자
- 논리자료형인
bool
객체를 연산해서bool
객체를 반환 and
,or
,not
is_a and is_b
: 둘 다 참이면 True, 하나라도 거짓이면 False 반환is_a or is_b
: 둘 중 하나라도 참이면 True, 둘 다 거짓이면 False 반환not is_a
: 거짓이면 True, 참이면 False 반환
1 < 3 and 3 > 1
>>> True
1 < 3 and 1 < 1
>>> False
1 < 3 or 1 < 1
>>> True
not False
>>> True
not True
>>> False
1 < 3 and 1 < 2 and 1 < 1
>>> False
1 < 3 and 1 < 2 or 1 < 1 # 앞에서부터 순서대로 연산, but 가독성이 좋지 않음
(1 < 3 and 1 < 2) or 1 < 1 # 괄호를 사용해서 가독성 향상
>>> True
not ( 1 < 3 and 1 < 2)
>>> False
포함 연산자
- 어떠한 값이 포함되어 있는지 여부를
bool
객체로 반환
"a" in "abcd"
> > > True
"a" not in "abcd"
> > > False
"a" not in "efgh"
> > > True
728x90