Today I Learned

[TIL] 파이썬 기초 수업 시작 (변수, datatype)

by Holly Yoon

TIL

짧은 방학을 마치고, 이제 본격적으로 시작해보는 데이터 분석 공부.  

1. 프로그래밍이란, 파이썬 특

  • 프로그래밍이란 CPU(중앙처리),RAM(주기억),SSD(보조기억) 장치들을 사용하는 절차이다.
  • 프로그래밍 언어의 종류 : 컴파일 언어/인터프리터 언어 
  • 파이썬은 인터프리터 언어에 해당하며, 속도가 느린 대신 컴파일 파일/빌드 과정이 필요가 없다. 그래서 문법이 굉장히 쉽고, 직관적이다.
  • 파이썬의 속도를 보완하기 위해, 컴파일 언어인 Numpy를 활용한다. 느린 처리 속도를 보완하여 데이터 분석에서 많이 사용한다. 
  • 파이썬은 플랫폼에 독립적이고, 객체 지향적이다.

2. 구글 코랩 단축키

  • 이제는 익숙해진 코랩 환경, 몇가지 기본적인 단축키
  • usc를 누르면 명령모드 진입 / enter를 누르면 편집모드 진입
  • ctrl+space 자동완성
  • esc+a 셀 위로 생성 / esc+b 셀 아래로 생성
  • ctrl+shift 코드 실행 / ctrl+enter 동일 코드 재실행

3. 앞으로 파이썬 수업의 로드맵

(*대체로 컴퓨터 언어들은 아래 순서대로 기본 문법을 독파하는게 좋다.)

  • 변수 (RAM을 사용하는 문법으로 메모리에 저장공간을 만들어 데이터를 저장함)
  • Data Type (메모리를 효율적으로 사용하기 위한 문법)
  • 연산자 (CPU사용)
  • 조건문 (특정 조건에 따라 다른 코드 실행) - 코드 효율적 작성 측면에서 공부
  • 반복문 (특정 코드를 반복적으로 실행)
  • 함수 (반복되는 코드를 묶어서 코드 작성 및 실행)
  • 클래스 (가독성이 떨어질 떄, 비슷한 기능의 변수 함수를 묶어서 작성 및 실행)
  • 모듈과 패키지 (모듈 : 변수, 함수, 클래스를 파일로 묶어서, 패키지 : 여러 개의 모듈을 디렉토리로 묶어서)
  • 예외 처리
  • 입출력

참고 자료 : 점프투파이썬 from wikidocs

4. 변수

  • 변수 선언은 메모리에 저장공간을 할당하여 저장하는 문법이다.
  • 식별자란, 저장공간을 구별해주는 문자열
  • 파이썬 식별자 규칙 
문법 : 틀리면 에러발행 > 코드실행 X
대소문자, 숫자, _ 사용가능
가장 앞에 숫자 X : data_1(O), 1_data(X)
명령어(예약어) 사용 X : def, if, for(X) print(O)
변수 : jupyter_notebook
상수(대문자로 작성) : JUPYTER_NOTEBOOL

%whos #매직커멘드
 

4. 데이터 타입

  • RAM의 효율적 사용을 위한 문법이다.
  • 기본 데이터 타입 : int, float, bool, str
  • 컬렉션 데이터 타입 : list[], tuple(), dict{key:value}, set([])
  • 같은 데이터를 가지고 있으면, tuple이 list보다 저장공간을 더 적게 사용한다. (sys.getsizeof()로 확인해보면 됨)
  • 데이터 선택 masking : data[start:end:stride]

(문제풀이) 해결책 만들기

 
# 1. 답변 리스트 생성 : answers = []
answers = [
    '무엇을 상상하던 그 이상으로 안 좋을것 이다.',
    '뜻하는 대로 모든 일이 잘 풀릴것이다.',
    '네 자신을 돌아봐라.',
]

# 2. 질문 받기 : question = input()
question = input('고민을 입력하세요. 고민이 해결될 것입니다.')

# 3. 답변 리스트의 갯수 만큼의 범위에서 랜덤한 정수 1개 생성 : random.randint()
idx = random.randint(0, len(answers) - 1)

# 4. 랜덤한 정수에 해당하는 답변 리스트의 데이터 출력 : answers[random_number]
answers[idx]

5. 실수하기 쉬운 코드 (얕은 복사와 깊은 복사)

# 실수 할만한 코드 1
# 얕은복사, 깊은복사
data1 = [1, 2, 3]
data2 = data1        # 얕은복사 : 주소값 복사
data3 = data1.copy() # 깊은복사 : 데이터 복사
print(data1, data2, data3)
data1[1] = 4
print(data1, data2, data3)
  • 얕은 복사는 주소값을 복사하기 때문에, 변경한 값이 기존 데이터에도 반영된다.
  • .copy() 메소드를 활용해서 데이터 복사를 해야한다.

6. 변수를 문자열에 삽입

#1 
'저는 ' + data1 + '원중에 ' + data2 + '원을 사용하였습니다.'
#2
'저는 {}원중에 {}원을 사용하였습니다.'.format(data1, data2)
#3
f'저는 {data1}원중에 {data2}원을 사용하였습니다.'
  • 코드가 길어질 경우 2번보다 3번이 손쉽게 데이터 확인이 가능해서 권장된다.

블로그의 정보

Study Log by Holly

Holly Yoon

활동하기