본문 바로가기

Data Science/Python

Python101_변수(Variable)와 데이터 타입(data-type)_기본 타입(Basic Type)

 

- 모든 지식은 구글이 기억해 줍니다!
ㄴ 헷갈리거나 기억이 안날 때, 나중에 쉽게 찾기 위해서 키워드 위주로 정리되어 있습니다.(궁금한 부분은 cmd +f 또는 ctrl+f를 통해 검색)
ㄴ 본 블로그에 자세한 설명이 있다면 [자세히 알아보기] 항목을 누르시면 링크가 연결됩니다.

- 공부를 위해 해당 페이지를 보시는 중이라면 구글 코렙(Google Colab)에서 실행해 보시길 추천드립니다.

🏆 학습 목표

  • 변수의 의미
  • 데이터 타입

🧷 가져갈 키워드

int / float / str / bool / variable declaration / value assignment

 

📖 변수(Variable)란?

 

myNum = 4
# 변수명 = 데이터
  • 데이터를 저장하는 공간 
  • 저장공간(Memory)에 값을 생성하고 이름(name)을 지정 
    +) 통계에서 매개변수/독립변수/종속변수/조절변수 등으로 인식을 확장할 수 있다.
  • 주로 대입연산자로서 '=' 를 사용하고 비슷하지만 다른기호인 '==' 는 비교연산자이다.

🍀Tip : Comment(주석)

# Python에서는 '#' 뒷부분을 실행하지 않음
# 그래서 개발자들이 서로 보기편하게 설명을 간단하게 표시

🍀Tip : print( )

- 해당 변수의 값을 출력
- 여러 변수일경우 ',' 을 통해 나열
- 설정
ㄴ sep : 구분자, 각 출력할 변수 사이에서 구별하는 역할을 함
ㄴ end : 마지막에 출력할 문자열
print(myNum)
# 출력 시 위에 변수로 입력한 4가 보이게 됨

print(myNum, 1, 2.6, sep='*', end='!!')
# 출력시 4*1*2.6!!

🍀Tip : format( )

print("I have a {}, I have an {}.".format("pen", "apple")) #I have a pen, I have an apple.
print("I have a {1}, I have an {0}.".format("pen", "apple")) #I have a apple, I have an pen.

pi= 3.1412
print (format(pi, ".2f")) #3.14

 

✏️ 변수 이름  짓기

  • 숫자로 시작하는 이름 안 됨
  • 예약어(Reserved keywords) 사용 안 됨 - Python에서 미리 선점하여 사용 (for, while, if, class, try ... etc)
  • 영문 대소문자ㅡ, _ , 숫자로 구성가능
  • 코드 읽는 것을 쉽게 하기 위해 표현하고자 하는 변수를 정확하고 간결하게 짓는 것이 원칙
# 아래 변수 실행 가능
abcd = 100
ABCD = 100
aBcD = 100
AbCd123 = 100
a1b2b3 = 100
_abc123 = 100
_4 = 100
_123abc = 100

# 아래 변수 실행 불가능
123abc = 100
4 = 100

# 원활한 의사소통을 위해 학교 학생수를 변수로 둘 경우
# a = 100의 경우보다 student_num = 100로 명시한 것이 좋음

str_data = "hello"
int_data = 1  
float_data = 1.1  
bool_data = True

 

📖 데이터 타입(data-type)

python은 6가지 데이터 타입이 존재

  • Numeric Types: int(정수), float(소수), complex(복소수)
  • Sequence Types: str(문자열), list(리스트), tuple(튜플)
  • Mapping Type: dict(딕셔너리)
  • Set Types: set(집합)
  • Boolean Type: bool(불리언)
  • Binary Types: bytes, bytearray, memoryview
# Numeric Types: int(정수), float(소수), complex(복소수)
int = 7 #int
print(type(int)) # <class 'int'>

float = 11.3 #float
print(type(float)) # <class 'float'>

complex = 3 + 3j
print(type(complex)) # <class 'complex'>

# Sequence Types: str(문자열), list(리스트), tuple(튜플)
str1 = "Niceman" #str
str2 = "Goodgirl" #str
print(type(str1)) # <class 'str'>
print(type(str2)) # <class 'str'>

list = [3,5,7] #list
print(type(list)) # <class 'list'>

tuple = 3,5,7 #tuple
print(type(tuple)) # <class 'tuple'>

# Mapping Type: dict(딕셔너리)
dict = {
    "name" : "Jang",
    "age" : 32,
    "city" : "seoul"
} #dict
print(type(dict)) # <class 'dict'> 

# Set Types: set(집합)
set = {7,8,9} #set
print(type(v_set)) # <class 'set'>

# Boolean Type: bool(불리언)
bool = True #bool
print(type(bool)) # <class 'bool'>

🍀Tip : type( )

해당 변수, 값의 타입(type)을 알고자 할 때 사용

🍀Tip : None

아무런 값을 갖지 않을 때 사용

✏️ Numeric Types(숫자형 타입): Int / Float / Complex

  • 수학의 기본 연산자(가감승제) 사용 가능
  • Int(정수형) : 숫자형의 하나로 소수점이 없는 정수
  • Float(소수형) : 숫자형의 하나로 소수점이 있는 실수
  • Complex(복소수) : 실수와 허수의 합인 복소수
  • import math를 통해 수학적 기능을 확장시켜 활용 가능

🍀Tip : 비교 연산자(Comparison Operator)

- 프로그래밍에서는 비교를 할 경우, = 대신 ==를 사용
- <, > (초과,미만)
- <=, >= (이상, 이하)
- == 같다, != 같지 않다
- 비교 연산자의 결과는 bool 타입

🍀Tip : 사칙연산

- 덧셈(+), 뺄샘(-), 곱셈(*), 나눗샘(/), 몫(//), 나머지(%), 제곱(**)
- 연산자 우선순위(Operator priorities)
ㄴ 기본적인 수학의 연산자와 동일
ㄴ 강제로 연산을 선수하기 위해선, 괄호()를 사용
a = 10
b = 2
print(a+b) # 12
print(a-b) # 8
print(a*b) # 20
print(a/b) # 5.0
print(a//b) # 5
print(a%b) # 0
print(a**b) # 100
print(a*b*(b+b)) #80

🍀Tip : 다항 연산

x = 100
x += 100    # x = x + x
print(x) #200
y = 100
y /= y    # y = y / y
print(y) #1.0
z = 7
z *= z    # z = z * z
print(z) # 49
m = 99999999
m -= m    # m = m - m
print(m) # 0

🍀Tip : 수치 연산

print(abs(-10)) #절대값 : 10
n, m = divmod(200,8)
print(n, m) #25 0

import math
print(math.ceil(5.1)) #올림 : 6
print(math.floor(3.874)) #내림 : 3

✏️ String(문자열) : 문자, 단어 등으로 구성된 문자들의 집합

  • 문자열은 '(작은따옴표) 혹은 "(큰따옴표) 사이에 문자를 넣어서 생성
  • 문자열 자체에 ', "가 있는 경우에는 각각 그 반대의 기호로 생성
print("Hello world!") # Hello python!
print('Hello world!') # Hello python!
print("""Hello world!""") # Hello python!
print('''Hello world!''') # Hello python!

print('"Hi, hello" he says.') # "Hi, hello" he says.
print("Hello World. It's wonderful world") # Hello World. It's wonderful world

🍀Tip : 이스케이프 문자(Escape string)

- 문자열내의 일부 문자의 의미를 달리하여 특정한 효과를 주는 것
- \n : new line \t : tab 등
# 줄 바꿈 위한 이스케이프코드(\n) 삽입하기
multiline = "Life is too short\nYou need python."
print(multiline)
# Life is too short
# You need python.

print('Ha\thahaha') # Ha	hahaha

🍀Tip : 인덱스

- 인덱스는 [0, 문자열의 길이] 의 범위만 유효
-음수 인덱스를 사용할 경우, [-문자열의 길이, -1]범위를 넘어갈 경우 에러 발생
# 문자열 길이 구하기 : len()
getlength = 'python is cool'
print(len(getlength)) # 14

# 문자열 인덱싱
indexing = "Life is too short, You need Python"
print(indexing[3]) # e -> 0번부터 시작, 3은 4번째 자리
print(indexing[-1]) # n -> -1은 뒤에서부터 시작해 1번째

🍀Tip : 문자열 슬라이싱

- 인덱스가 하나의 문자만을 추출한다면,slicing은 부분 문자열을 추출
- [시작:끝]와 같이 명시하여 [시작, 끝]에 해당하는 부분 문자열을 추출시작, 끝 인덱스가 생략이 되어 있다면, 0부터 혹은 끝까지로 간주
slicing = "Life is too short, You need Python"
print(slicing[0:4]) # Life -> [x:y] x부터 y전까지 문자열을 뽑아옴(끝 번호 포함 안함)
print(slicing[:]) # Life is too short, You need Python
print(slicing[:4]) # Life
print(slicing[18:]) # You need Python
print(slicing[-1:7]) # Python

✏️ 문자열 함수

  • 문자열은 여러가지 기능 제공을 위한 함수를 내장
  • 함수란 특정 기능을 하는 코드로 언제든지 호출하여 해당 기능을 사용 가능하도록 구성한 코드
# 소문자를 대문자로 바꾸기(upper)
a = 'hello world'
print(a.upper()) # HELLO WORLD

# 대문자를 소문자로 바꾸기(lower)
a = "PYTHON"
print(a.lower()) #python

# 문자열 바꾸기(replace)
a = 'hello world'
print(a.replace('h', 'j')) #jello world

# 공백지우기 : 양쪽 공백 지우기(strip) / 왼쪽 공백 지우기(lstrip) / 오른쪽 공백 지우기(rstrip)
a = "     hello    "
print(a.strip()) # hello

a = ",,,hello..."
a.strip(",")# hello...
a.strip(".")# ,,,hello

# 문자열 나누기(split) : 문자열을 특정한 문자 구분하여(delimiter) 문자열의 리스트로 치환
a = 'hello world what a nice weather'
print(a.split('w')) # ['hello ', 'orld ', 'hat a nice ', 'eather']

# 특정 변수값을 동적으로 문자열 생성(format)
temperature = 36.5
prob = 90.0
a = '오늘 기온{}도 이고, 비올 확률은 {}% 입니다.'.format(temperature, prob)
print(a) #오늘 기온36.5도 이고, 비올 확률은 90.0% 입니다.

🍀Tip : 유용한 함수

# 문자 갯수 세기(count)
a = "lalalalalballlballballballllblblblblaaaa"
print(a.count("l")) # 20 -> a 중 l의 갯수를 가져옴

# 위치 알려주기(find)
a = "python!"
print(a.find("!")) # 6 -> !표가 6번째 자리에 위치함
print(a.find("b")) # -1 -> b가 a 없음

# 문자열 삽입(join)
a = "python"
print(".".join(a)) # p.y.t.h.o.n
print("-".join(a)) # p-y-t-h-o-n

📚 Reference

 

Python data types - Programmers Portal

Python Data Types - Python has five standard/built-in data types. But we don't specify the type of a variable explicitly. This is because Python is a dynamically typed programming language.

programmersportal.com

 

3. 파이썬의 간략한 소개 — Python 3.10.0 문서

3. 파이썬의 간략한 소개 다음에 나올 예에서, 입력과 출력은 프롬프트(>>> 와 …)의 존재 여부로 구분됩니다: 예제를 실행하기 위해서는 프롬프트가 나올 때 프롬프트 뒤에 오는 모든 것들을 입

docs.python.org