데이터 취업 스쿨 교육 4회차 내용 정리

Reallee·2023년 9월 16일
0

데이터 취업 스쿨

목록 보기
5/19
post-thumbnail

ABS

  • 절대값을 구할 때 사용하는 명령어
  • 절대값을 구하고 싶은 수를 매개변수로 넣고 절대값을 얻을 수 있음.

  • 위와 같은 상황에서 값에서 Avg 값을 차감하여 양수인 경우 + 출력, 음수인 경우 -를 출력하고자 함.
  • ABS 명령어를 사용하여 위와 같이 차이만큼의 +와 - 개수를 '출력'할 수 있음.

Random

  • 범위 내의 난수를 출력하는 명령어로 무작위의 데이터를 사용 가능
  • 사용할 때는 import random으로 모듈을 불러와서 사용해야 함.
  • random.random()은 0이상 1미만의 실수 난수 생성
  • randint(시작, 끝)은 시작과 끝 사이의 정수 난수 생성
  • randrange(시작, 끝, 간격)운 시작과 끝 사이에서 간격만큼의 난수를 생성

반복문

  • 반복문 실습을 하는데 마름모를 만드는게 이렇게 어려운 줄 몰랐다..
  • 고민하고 입력하는데 1시간 정도 걸린 것 같다.. 정말 멀었다...

함수란

  • 함수는 제공된 데이터를 사용해 특정 결과물을 내주는 기능을 말함.
  • 사용자 함수를 사용하기 위해서는 def 라는 키워드를 선언해야 함.
    - def / 함수명(첫글자는 영문 소문자)() / :(콜론)
    실행문 들여쓰기
  • 파이썬은 기본으로 제공하는 내장함수와 사용자가 직접 선언하는 사용자 함수가 있음.
  • 함수는 특정 코드를 지속적으로 반복하여 사용하기 위해 사용함.

함수 선언

  • 위와 같이 선언하여 사용할 수 있으며, 이미지 최하단과 같이 호출을 해야 함.

함수 내 또 다른 함수 선언

  • 위 이미지와 같이 사용할 수 있으며, 실행문이 없는 경우 실행문에 pass를 입력해 오류를 방지할 수 있음.

인수와 매개변수

  • 함수의 인수와 매개변수의 수는 동일해야함.
  • 위와 같이 매개변수의 수가 정해지지 않은 경우 '*' 이용하여 대처할 수 있음.
  • 위와 같이 round를 사용하면 소수점을 줄일 수 있음.
    • round(인자, 소수점자리)를 입력하여 소수점 자리만큼으로 줄일 수 있음.
    • 미입력 시 소수점 첫째자리에서 반올림하여 소수점을 없앰.

데이터 반환

  • 제공된 데이터를 반환받을 수 있음.
  • return은 되돌리는 기능이기 때문에 하단의 추가명령을 실행시킬 수 없고 종료됨.
    - return 함수는 매우 중요하니 꼭 기억하기!

지역변수와 전역변수

  • 전역변수 : 함수 밖에 선언된 변수로 어디에서나 사용가능하지만, 함수 안에서 수정은 불가함.
  • 지역변수 : 함수 안에 선언된 변수로 함수 안에서만 사용가능함.
  • 글로벌함수 : glgbal을 사용하면 함수 안에서도 전역변수의 값을 수정할 수 있다.
    • 위와 같이 global을 이용해 전역변수의 값을 수정할 수 있음.

중첩 함수

  • 함수 안에 또 다른 함수가 있는 형태
def calculation(n1, n2, operator):

    def addCal():
        print(f'덧셈 연산 : {round(n1 + n2, 2)}')

    def subCal():
        print(f'뺄셈 연산 : {round(n1 - n2, 2)}')

    def mulCal():
        print(f'곱셈 연산 : {round(n1 * n2, 2)}')

    def divCal():
        print(f'나눗셈 연산 : {round(n1 / n2, 2)}')

    if operator == 1:
        addCal()
    elif operator == 2:
        subCal()
    elif operator == 3:
        mulCal()
    elif operator == 4:
        divCal()

while True:
    n1 = float(input('실수(n1) 입력 : '))
    n2 = float(input('실수(n2) 입력 : '))
    operatorNum = int(input('1. 덧셈 \t 2. 뺄셈 \t 3. 곱셈 \t 4. 나눗셈 \t 5. 종료'))

    if operatorNum ==5:
        print('Bye~')
        break

    calculation(n1, n2, operatorNum)

lambda 함수

  • 기존의 함수선언을 간단하게 할 수 있는 함수

module

  • 내부모듈 : 파이썬에서 사용가능한 기본 모듈
  • 외부 모듈 : 별도 설치 후 사용가능한 모듈
  • 사용자 모듈 : 사용자가 직접 만든 모듈

모듈 제작

  • 모듈명.접근연산자 로 모듈 내 기능을 사용할 수 있음.
  • 파이썬 파일명을 모듈명으로 하여 불러올 수 있으며 위의 이미지와 같이 사용 가능.

모듈을 사용하는 키워드

1. import

  • import 모듈명 을 이용해 사용 가능

2. as

  • 사용하고자 하는 모듈의 이름이 긴 경우 사용 가능
  • import calcualtor 의 경우 calculator이라는 모듈명이 너무 김.
  • 위와 같이 import calculator as cal 이라는 명령어를 사용하는 경우 모듈을 cal로 호출이 가능.

3. from ~ import

  • 모듈 내의 특정 기능만 사용하고 싶은 경우 사용
  • from 모듈명 import 특정기능 으로 입력하여 사용 가능
  • from 모듈명 import * 를 입력하면 모듈 내 모든 기능을 불러와 사용 가능
  • 'from 모듈명 import 기능 나열' 모듈 내 기능을 나열하는 방법으로도 모든 기능을 불러와 사용 가능

전역변수 name

1. name 기본 개념

  • name에는 파이썬이 기본적으로 제공하는 변수

  • name에는 기본적으로 파이썬 파일의 이름이 저장됨.

  • 메인 실행 파일을 찾기 위함.

  • 메인이 아닌 경우 실행되지 않게 하기 위해 아래와 같은 코드 입력 필요

2. 전역변수 name을 이용한 실행파일 지정

패키지

1. 패키지 기본개념

  • 관련이 있는 모듈을 묶어서 그룹으로 관리하는 것.

2. 패키지 만들기

  • 다른 디렉토리에 있는 모듈을 어디에서나 사용가능하게 만들 수 있음.
  • site-packages 라는 곳에 넣어두면 사용할 수 있음.
  • 위와 같이 입력하면 파이썬 프로그램을 실행하기 위해 참조하는 경로가 나타남.

자주 사용하는 모듈

1. math

  • 수학과 관련한 모듈
    • 수학관련 함수
      • sum : 합과 관련한 모듈
      • max : 최대 값
      • min : 최소 값
      • pow : 제곱
      • round : 반올림
    • maht 모듈
      • fabs : 절대값
      • 올림 : ceil
      • 내림 : floor
      • 버림 : trunc
      • 최대공약수 : gcd
      • 팩토리얼 : factorial

2. random

  • 난수와 관련한 모듈
    • random : 0이상 1미만 난수
    • randint : ~ 이상 ~ 이하 난수
    • randrange : ~ 이상 ~ 미만 난수
    • sample : ~ 이상 ~ 미만 난수 n개
    • choice : 무작위 1개 추출
    • suffle : 섞음.

3. time

  • 시간과 관련한 모듈

객체지향 프로그래밍

1. 객체를 이용한 프로그램으로 객체는 속성과 기능으로 구성

  • 객체(Object) : 속성(attribute) + 기능(funtion)
  • 객체 생성
    • 속성, 기능 등으로 묶어 클래스(객체를 만들기 위한 틀)를 생성
    • 클래스에 맞춰 필요에 의해 메모리에 생성
  • 객체 사용의 장점
    • 코드 재사용, 모듈화에 좋다.

2. 클래스 만들기

  • 클래스 선언 (class 키워드:)
    • 키워드의 첫 글자는 대문자로 생성해야 함.
    • 클래스는 객체 생성을 위한 준비이고, 선언만 하였다고 인스턴트되지 않음.
    • 인자로 self를 넣어줘야 함.

3. 객체 속성 변경

  • 클래스를 만든 이후 변수에 담아줘야 함... 자꾸 까먹음

4. 객체와 메모리

  • 변수는 객체의 메모리 주소를 저장하고, 이를 이용해서 객체를 참고한다.
  • 얕은 복사
    • 기존의 객체를 또다른 객체에 할당하는 경우 객체가 할당되는 것이 아닌 메모리 주소만 복사 됨.
  • list 에서 copy 함수로 복사가 가능.
    • enumerate로 for문에서 변수를 2개 사용할 수 있으며, 자료형 구조에서 사용

5. 객체의 얕은복사와 깊은 복사

  • 얕은 복사 : 객체의 주소를 복사
  • 깊은 복사 : 객체 자체를 복사하는 것으로 또 다른 객체가 생성됨.
    • copy라는 모듈을 이용해 사용할 수 있음.
    • id 라는 함수를 이용해 할당된 주소값을 확인할 수 있음.
    • for문을 이용할 수 있음.
    • extend를 이용할 수 있음.
    • .copy를 이용할 수 있음.
    • 슬라이싱을 이용할 수 있음.
  • 최고값과 최저값 삭제
    • pop 함수를 이용
      • .pop(0) 사용 시 최저값 삭제
      • .pop() 사용 시 최고값 삭제

6. 클래스 상속

  • 클래스는 또 다른 클래스를 상속해서 내것처럼 사용할 수 있음.
    • 클래스1(클래스2(클래스3))인 경우 클래스3은 클래스 1, 2의 기능을 모두 사용 가능하며, 클래스2는 클래스1의 기능을 사용할 수 있음.
  • 사용방법은 위 이미지와 같이 상속 받을 클래스 뒤에 상속할 클래스의 이름을 넣으면 됨.

7. 생성자

상위 상속자의 초기화

  • 위와 같이 상위 상속자의 init 메서드를 강제로 호출할 수 있음.
  • 위와 같이 super()를 이용해 init 메서드를 강제로 호출할 수도 있으며, 이 경우에는 self를 생략함.

2개 이상의 클래스 상속(다중 상속)

  • ,(콤마)를 이용해 열거하여 상속받을 수 있음.
  • 다중상속은 필요한 경우에만 최소한으로 사용하는 것을 권장

8. 오버라이딩

메서드 재정의

  • 하위 클래스에서 상위클래스의 매서드를 재정의(override)한다.
  • 위와 같이 사용 가능.

9. 추상 클래스

  • 상위클래스에서 하위클래스에 메서드 구현을 강요
  • 상위클래스에 선언만 되어있고, 메서드 구체화가 안되어있어 하위클래스에서 구현해야 하는 경우
  • 이 경우 위와 같이 from abc import ABCmeta / from abc import abstractmethod 함수를 불러와 @abstractmethod라는 명령어를 입력해 추상메서드로 지정하고 이를 통해 메서드 구현 을 강제해야 함.

10. 예외

예외의 원인 및 종류

  • 문법적인 문제는 없으나, 실행 중 발생하는 예상하지 못한 문제
  • 예외 관련 클래스는 Exception 클래스를 상속한다.
  • 0을 나눈다던지, 문자를 정수화한다던지 하는 오류 등

예외 발생 시 실행 구문(try ~ except)

  • 예상하지 못한 예외가 프로그램 전체 실행에 영향이 없도록 처리함.
  • 예외 발생 예상 구문을 try ~ except로 감싼다.
  • 위의 경우 5 이하의 숫자 5개를 조건 외의 데이터가 입력되는 경우 예외발생으로 다시 초기로 넘어가는 구조임. 예외발생의 경우 continue를 통해 위로 다시 올라가게 만들어진 구조임.

예외 미발생 시 실행 구문(else)

  • else를 이용해 사용 가능

예외발생 유무와 관계없이 항상 실행(finally)

  • 예외 발생 유무와 관계 없이 항상 실행되며 마지막에 입력

exception 클래스(exception as 키워드)

  • 문제가 발생하였을 경우 파이썬이 어떤 오류인지 알려줄 수 있게 하는 기능

예외 강제 발생(raise)

profile
초심자 입니다!

0개의 댓글