AI 부트캠프 TIL - 1일차

Cookie Baking·2024년 9월 30일

AI 부트 캠프 TIL

목록 보기
1/42

1. 파이썬의 기본

파이썬은 다른 프로그래밍 언어들과는 다르게 인터프리터 언어이다.
인터프리터 언어란 무엇인가 하면 한줄씩 컴파일이 들어가는 언어를 말한다. 즉 단계별로 진행이 가능한 프로그래밍 언어이다!

(다른 프로그래밍 언어 ex.c++ 같은 경우에는 통으로 사전 컴파일이 들어가는 특징이 있는데 통으로 컴파일이 들어가기 때문에 속도는 컴파일 언어가 빠르지만 에러가 났을 경우 에러가 난 위치를 찾기 힘들다는 단점이 존재한다)


파이썬에서의 변수

  • 파이썬에서의 변수의 용도는 다른 프로그래밍 언어들과 동일하게
    값을 저장하고 관리하는 용도이다.
    사실 이 용도는 다른 프로그래밍 언어에서도 동일하게 해당하는 사항이다.
    다만 파이썬에서의 변수는 미리 변수를 선언할 때 변수의 타입을 지정해주지 않아도 된다는 장점이 있다.

  • 파이썬에서의 숫자형 변수의 범위 제한은 다른 언어들에 비해 제한이 없는데
    int의 경우에는 범위가 없으며
    float의 경우에는 64비트 제한이 있다. (소수점 이하 15 ~ 16자리)


파이썬에서의 연산자

a = 10
b = 3

# 산술 연산자
print(a + b) # 13
print(a - b) # 7
print(a * b) # 30
print(a / b) # 3.3333335 -> 나눗셈은 항상 float 형태를 return 함
print(a // b) # 3
print(a % b) # 1
print(a ** b) # 1000
print(a += 1) # 11

# 비교 연산자 
print(a == b) # False
print(a != b) # True

# 논리 연산자 : and, or, not
print((a%10 == 0) and (b%10 == 0)) # False
print((a%10 == 0) or (b%10 == 0)) # True

# 비트 연산자 : 시프트 한 곳에 0이 채워짐 
a = 3
print(a << 2) # 12
print(a >> 2) # 0

# 멤버십 연산자 : in, not in

x = ["apple", "banana"]
y = ["apple", "banana"]

print(x is y) # False
z = x
print(x is z) # True

파이썬에서의 문자형 타입

  • 여러 줄에 걸쳐 텍스트를 입력하려면 삼중 따옴표를 사용할 것
  • 따옴표랑 쌍따옴표를 같이 넣고 싶다면 바깥에는 작은 따옴표, 내부에는 큰 따옴표를 넣자

2. 파이썬의 제어문

파이썬의 컬렉션 자료형

  • 리스트 : 여러 개의 항목을 순서대로 저장할 수 있는 가변 자료형
    - 리스트의 범위 접근 시에 뒤는 닫힌 괄호이며 앞은 열린 괄호이다.
    • number_list[2:4] 는 number_list의 2, 3만 인덱싱해온다.
    • 맨 뒤에 있는 항목을 갖고 오고 싶다면 리스트[-1]을 한다
number_list = [1,2,3,4,5]

number_list.append(6) # [1,2,3,4,5,6]
number_list.remove(4) # [1,2,3,5,6]
print(number_list[-1]) # 5
  • 튜플
    리스트와 비슷한 형태로 비슷한 기능을 하는 컬렉션이다.
    다만 [ ] 가 아닌 ( )로 선언을 하며
    불변 자료형이다. 때문에 값이 변경되지 않아야 할 묶음일 때 사용한다.
    메서드에서 2개 이상

  • Set
    중복된 값을 제거하는 자료형이며 사용법은 아래와 같다

myList = [1,1,1,1,1,2,3,4,5]

mySet = set(myList) # {1,2,3,4,5}

mySet.add(7) # {1,2,3,4,5,7}
mySet.remove(2) # {1,3,4,5,7}

mySecondSet = {5,8,9,10}

result = mySet.union(mySecondSet) # {1, 2, 3, 4, 5, 7, 8, 9, 10}

result = mySet.intersection(mySecondSet) # {5}

파이썬의 데이터 타입 변환
명시적 변환

  • int(). str(), bool(), list(), set()

암시적 변환의 경우

a = "5"
b = int(a) # 이를 실행하기 위해서는 a의 따옴표 안의 수는 정수형이어야 함

파이썬의 제어문과 반복문
제어문이란 프로그램이 결정을 내리도록 하는 도구로, 조건에 따라 제어가 필요할 때 사용할 수 있겠다.

반복문이란 프로그램이 동일한 작업을 반복하도록 하는 도구로 동일한 조건에서 반복적인 동작이 필요할 때 유용할 수 있겠다.

제어문

형태로는

if 조건 :
	동작

대표적인 조건문으로는 if/elif/else 문이 있다.

위 조건문은 선후 관계가 매우 중요한데
만약 if > elif > else 가 있다면 elif는 if에 걸리지 않은 상태에서 들어가는 조건문을 의미하기 때문에 if와 elif에 공통되는 부분이 있지 않게 해야 의미있는 조건문이 되겠다.

if 다음에 오는 조건으로 True, 1, 문자열은 단독으로는 동일하다.

반복문

while 문과 for문이 있다.

  • 조건식이 참인 동안 반복해서 코드 블록을 실행함, 조건이 거짓이 될 때 반복문은 종료됨
  • 멈추고 싶다면 break 실행, 무시하고 지나가고 싶다면 continue

차이점은

  • for문은 각 컬렉션의 각 요소를 순회하면서 반복하는 반면 while문의 경우에는 조건이 참인 동안에만 반복함

3. 파이썬의 내장함수

  • input() : 값을 받는 내장함수로, 받으면 형태는 자동으로 str이 된다.
  • len() : 컬렉션 형태에 모두 적용할 수 있는 길이를 나타내는 함수임
  • type() : 데이터의 타입을 확인하게 해주는 함수임
  • max(), min() : 컬렉션에서 최대값, 최소값을 가져오는 함수임
  • sorted() : 숫자형 형태로 정렬해주는 함수임
    - sort()랑 차이점을 알아야 하는데 sorted(컬렉션)은 컬렉션 자체가 바뀌는 것이 아닌 반면 컬렉션.sort()는 컬렉션 자체가 바뀌는 것을 말함
  • abs() : 절댓값을 표시해주는 함수임
  • round() : 두번째 인수로 자릿수를 받는데, 지정된 자릿수까지 반올림을 해주는 함수임

특징

  • 반환값으로 두 개까지 나올 수 있는데 이때 자료형의 형태는 튜플임
  • 함수는 여러 매개변수에 대해 기본값을 가질 수 있음
  • 기본값이 있는 매개 변수는 항상 기본값이 없는 매개변수 뒤에 와야 함
def greet(name="쿠키"):
	...

print(greet()) # 실행 가능

def greetIncludeAge(age, name="쿠키"):
	...

print(greetIncludeAge()) # 실행 불가 - 특징 3 위배
print(greetIncludeAge("쿠키")) # 출력값으로 age, name 모두 "쿠키"가 들어감
  • 파라미터로 여러 개를 주입받을 경우 함수를 구성할 때에는 *args를 붙이면 됨
  • 딕셔너리 형태로 파라미터를 주입받을 경우 **kwargs를 붙이면 됨
myList = [1,2,3,4,5]
myDict = {"name": "쿠키", "age": 22}


def testList(*args):
	...
    
# 함수 호출
testList(*myList) # [1,2,3,4,5]

def testDict(**kwargs):
	...

testDict(**myDict) # 딕셔너리를 인자로 넣어줄 때에는 ** 붙일 것

모듈

  • 용도 : 여러 프로그램에서 재사용하기 위해 사용함
  • from 키워드 : 모듈을 가져올 때 사용
  • import 키워드 : 바로 메서드 사용할 때 사용
  • 같은 위치에 py 생성 후 메서드 생성을 한 후 다른 py 파일에서 테스트 해볼 수 있겠다.

패키지

  • 가상환경이란
    버전을 맞춰줄 때 사용하는 것으로 다른 개발 환경에 있는 사람들이 서로 각자의 코드를 실행할 때 사용해볼 수 있는 환경이 되겠다.
    패키지 간 의존성을 낮춰줄 수 있겠다.

  • 관리
    pip freeze > requirements.txt # install한 패키지를 저장해줌
    pip install -r requirements.txt # requirements.txt 내용대로 설치해줌


Try / Except 에러 처리

  • try: 다음에 동작문을 작성하며 except 문 다음에 잡고자 하는 익셉션/에러를 적어줌
    - exception은 모든 익셉션/에러를 포함함
    • finally는 예외 발생 여부에 상관없이 항상 실행되는 코드 블럭임
try:
	file = open("data.txt", "r")
	data = file.read()
except FileNotFoundError:
	print("파일을 찾을 수 없습니다.")
finally:
	file.close()
	print("파일을 닫았습니다.")

0개의 댓글