개발/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