코린이 성장일기

[멋사AI스쿨8기] TIL : 파이썬 문법 1일차 본문

멋사 AI스쿨8기

[멋사AI스쿨8기] TIL : 파이썬 문법 1일차

JJouni 2023. 1. 2. 15:50

실시간 줌 수업이 본격적으로 시작되었다.

확실히 VOD수업으로 파이썬을 혹독하게 체험한 후 듣는 것이라 조금 수월했다. 

 

오늘은 박두진 강사님과 함께 파이썬 문법 첫 번째 시간을 가졌다.

시작하면서 강사님 소개와 프로그래밍 개요, Jupyter notebook에 관하여 몇 가지 짚어주셨다. 

 

프로그래밍 개요

  • 컴퓨터 : 계산수행 : CPU, RAM, SSD(HDD) : OS(물리적장치제어) : APP(물리적장치사용절차)
  • 프로그램언어의 종류
    • 컴파일러언어 : 코드 실행하기 위해 컴파일 시간 필요 : 속도빠름
    • 인터프리터언어: 컴파일시간 필요 X : 속도느림 : 문법쉬움 : Python

Jupyter notebook

cell 단위로 코드를 실행하는 환경(에디터:IDE)

mode

  - 명령모드(esc) : cell 수정

  - 편집모드(enter) : cell 내용 수정

style

  - 코드 : python 문법실행

  - 텍스트 : markdown 문법실행 : 코드를 설명하거나 이미지를 추가할때

shortcut

  - shift + enter : 코드 실행

  - ctrl+enter : 같은 셀 코드 실행 

  - esc + a, b : 셀 위,아래에(above, below)생성

  - ctrl + space : 자동완성

 

* 쥬피터 노트북 기능(명령어)

매직(스페셜)커멘드 : %, %%문법, %ls, %reset, %%wirtefile…

% : 커멘드 한줄 단위 실행

%% : 셀 단위로 실행

예) %whos

 

 

앞으로 우리가 배울 것들을 10가지로 정리해주셨다.

1. 변수선언 : RAM을 사용하는 문법(메모리에 저장공간을 만들어 데이터 저장방법)
2. 데이터 타입 : RAM을 효율적으로 사용하기 위해 적절한 데이터 타입 사용 필요!
3. 연산자 : CPU를 사용하는 문법
4. 조건문 : 특정 조건에 따라 다른 코드 실행
5. 반복문 : 특정 코드 반복 실행
6. 함수 : 반복되는 코드를 묶어서 코드 작성 및 실행
7. 클래스 : 비슷한 기능의 변수, 함수를 묶어서 코드 작성 및 실행 (객체지향을 구현한 문법)
8. 모듈, 패키지
    - 모듈 : 변수, 함수, 클래스를 파일(.py)로 묶어서 코드 작성 및 실행
    - 패키지 : 여러 개의 모듈을 디렉토리로 묶어서 코드 작성 및 실행
9. 예외처리 : 코드 에러에 대한 처리를 하는 문법
10. 입출력 : SSD(HDD)를 사용하는 문법

 

문법을 배우기에 앞서, 구글 colab을 사용하는 법을 먼저 익혔다. 

Google에서 "colab" 검색 > 새노트 생성 
새 창을 열어 구글드라이브 > 'code'라는 파일 생성 > 'code' 파일로 들어가서 오른쪽 버튼을 누른 후 더보기 > Google Colaboratory 클릭 후 이름 변경 > 코딩

colab 새노트 생성 , 드라이브에서 colab 파일 생성

 

 

 

본격적으로 colab의 jupyter notebook을 사용해서 오늘은 변수선언과 데이터타입에 대하여 배웠다.

👉 파이썬 문법 1,2

컴퓨터의 CPU, RAM, SSD(HDD) 자원을 활용하기 위한 방법

1. 변수선언

  • 식별자 : 저장공간을 구별해주는 문자열
    • 문법 : 틀리면 에러발생 > 코드실행 X
      • 사용 O : 대소문자, 숫자, _
      • 사용 X 
        • 가장 앞에 숫자 X : 예) data_1(O), 1_data(X)
        • 명령어(예약어) 사용X : 예) def, if, for(X) print(O)
    • 컨벤션 : 틀려도 코드실행 O > 보기에 안좋음 : PEP8(도덕)
      • 변수 : snake_case 사용 예) jupyter_notebook ↔ camelCase 예) jupyterNote
      • 상수 : 대문자로 작성 : 예) JUPYTER_NOTEBOOK
  • 변수 선언 방법
    • 식별자 1개, 데이터 1개
    • data1 = 1
    • 식별자 n개, 데이터 n개
    • data2, data3 = 2, 3
    • 식별자 n개, 데이터 1개
    • data4 = data5 = 4
    • 출력 : print() : 식별자에 저장되어 있는 데이터 출력

 

2. 데이터타입

  • 기본 : int(정수형), float(소수형), bool(논리값), str(문자열)
    • 동적타이핑 : 자동으로 데이터타입을 설정 (인터프리터언어의 특징)
  • 컬렉션 : list, tuple, dict, set : 식별자 1개, 데이터 n개
    • list : 순서가 있고, 수정이 가능
    • tuple : 순서가 있고, 수정이 불가능
      • tuple 사용 이유 : 같은 데이터를 가지고 있으면 tuple이 list보다 저장공간을 적게 사용
    • dict : 순서가 없고, 수정이 가능, 순서값 대신 키값 사용
    • set : 집합 데이터 표현 : 중복데이터 허용 X : 교집합, 합집합, 차집합 연산 사용가능
  • CRUD
    • create : list([]), tuple(()), dict({}), set(set())
    • read : masking : data[] : [idx], [key], [start:end], [start:end:stride]
    • update : 데이터선택 = 수정할데이터
    • delete : del 데이터선택
  • 변수의 속성값 출력 함수 : print(), type(), sys.getsizeof(), id()
  • 얕은복사(주소값 복사), 깊은복사(데이터 복사) 
data1 = [1, 2, 3]
data2 = data1 # 얕은복사 : 주소값 복사
data3 = data1.copy() # 깊은복사 : 데이터 복사
print(data1, data2, data3)
data1[1] = 4
print(data1, data2, data3)

 

[연습]  해결의 책

  • 알고리즘
    1. 답변 리스트 생성 : answers = []
    2. 질문 받기. : question = input()
    3. 답변 리스트의 갯수 만큼의 범위에서 랜덤한 정수 1개 생성 : random.randint()
    4. 랜덤한 정수에 해당하는 답변 리스트의 데이터 출력. : answers[random_number]
  • 코딩

 

 

 

😊 TIL 소감

확실히 VOD수업보다 작동원리나 배경도 설명해주면서 코딩을 알려주시니 그동안 비어있었던 문법 퍼즐이 맞춰지는 시간이었다. 

특히 박두진 강사님께서는 배운 내용을 한 번씩 정리해주시고, 배운 것을 토대로 코딩연습도 해보기 때문에 배운 것들이 머릿속에 체계적으로 자리잡은 느낌이다. 감사합니다:)

이제 시작하는 베이비단계라 아직 가야할 길이 멀지만, 그래도 오늘도 열심히 한 발 더 성장한 느낌이라 기분이 좋다.

 

요즘 하고 있는 켈리 최님의 아침 긍정 확언의 한 마디로 나의 하루하루를 기대해보고자 한다.

'나는 내 꿈을 이루기 위해 충분한 자질을 갖추고 있고, 충분히 똑똑하고, 충분히 건강하고, 충분히 용기 있다.'

 

오늘도 내 꿈에 조금 더 가까이 다가가는 시간이 좋다.

내일은 오늘 보다 더 가까이 가 있을 것이다.