[Python] python 기본 문법 & 자료구조 & 흐름제어
Python 기본 문법 & 자료 구조& 흐름제어
(본인은 C++ 를 베이스로 공부를 해왔기에 지식적으론 알지만 python으로는 처음과 같다)
================================
오늘 시작은 python_basic folder 를 만들어
가상환경을 만들고
안에 .py를 만들어서 가상환경에서 실행이 되었는지 체크를 하고
python -m pip install --upgrade pip
으로 pip 업그레이드를 해준다.
그 후
pip install jupyter
pip install numpy
pip install pandas
3개의 library를 설치해준다.
jupyter 같은 경우 개발 도구 중 하나이며 데이터 분석할 때 쓰기 편리하다.
코드 설명을 하기 쉽고 문서 작성을 편리하게 할 수 있는 웹 응용프로그램임.
numpy 는 행렬과 같이 수학적 자료가 필요할 때 사용한다.
pandas는 도표처럼 수학적 통계를 보는데 사용한다.
확인을 할 때
import numpy as np
import pandas as pd
as np, pd인건 활용할 때 np.함수 이렇게 쓴다는 뜻
================================
기본 문법
import numpy as np
import pandas as pd
import sys
kk = 1 # int 변수
name = 'python' # string 변수
print(kk)
print(name)
print(type(kk)) # type은 이 변수의 자료형을 알려준다.
print(type(name))
for a in range(0,9,1): # range 같은 경우 0부터 시작해 9-1 = 8 만큼 돌아가고 a의 상승이 1임을 알려준다.
print(a)
my_list = ['치킨','피자','스파게티','아몰랑']
for a in range(0,len(my_list),1): # a를 숫자로 받고 len(my_list)의 크기만큼 가져온다.
print(my_list[a])
for b in my_list: #c++과 다른점으로 바로 my_list에 있는 것들을 하나씩 불러온다.
print(b)
import enum # 열거형을 의미, 열거형이란 특정 값들의 집합을 나타내는 자료형, 상수 정의를 내린다 생각하면 될 듯
class RAINBOW(enum.Enum):
RED = (enum.auto(), 0)
ORANGE = (enum.auto(), 1)
YELLOW = (enum.auto(), 2)
GREEN = (enum.auto(), 3)
BLUE = (enum.auto(), 4)
NAVY = (enum.auto(), 5)
PURPLE = (enum.auto(), 6)
print(RAINBOW.RED.name)
print(RAINBOW.RED.value[1])
# RAINBOW.RED.name = 'GREEN' # 상수 취급이라 변경시 에러가 뜸
print(RAINBOW.RED.name)
개인적으로 기본적인 연산, 문자열에 대해선 생략하겠다.
================================
자료구조 List를 확인해보면
1) List
python 같은 경우 List를 기본으로 제공한다.
my_list = [1,2,3,'Hello', True]
my_list.append(5)
print(my_list)
C++과 다르게 list를 만들 때 자료형 선언을 할 필요가 없어 위와 같이 선언하면 된다.
2) Tuple
튜플은 리스트와 비슷하지만 안에 값들을 변경할 수 없다.
C++에서 const 선언을 하는 것과 비슷하다고 생각하면 될 듯하다.
my_tuple = (1, 2, 3, 'Hello', True)
print(my_tuple[1])
출력으론 2 가 나온다.
3) Dictionary
Dictionary 같은 경우 키-값을 쌍으로 저장하는 데이터 구조로 키를 사용해서 값을 출력할 수 있다.
my_dict = {'name' : 'John', 'age' : 30, 'city' : 'New York'}
print (my_dict['name'])
출력은 John이 나온다.
4) Linked List
5) Stack
stack 같은 경우 LIFO로 제일 늦게 들어온게 제일 빨리 나가는 것으로 구현을 한다면
stack_list = [0,1,2,3,4,5]
stack_list.append(6)
print(stack_list)
stack_list.pop()
print(stack_list)
6) Queue
Queue 같은 경우 FIFO로 제일 먼저 들어온게 제일 빨리 나가는 것으로 구현을 한다면
import queue
q = queue.Queue()
for i in range(0,9):
q.put(i)
print(q.qsize())
print(q.get()) # pop을 하는거와 같다.
print(q.qsize())
7) Deque
8) Heap
9) Graph
10) Tree