ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python]_41일차_06.16
    프로그래밍/Python 2021. 6. 17. 22:27

    본 내용은 '2021년 혁신성장 청년인재 집중양성 사업'의 ‘인공지능 개발자 양성 과정
    강좌를 수강하면서 강의 및 강의노트를 참고하여 작성한 내용입니다.


    [002-1] Python_서브노트.txt

    Links

    파이썬 코딩 컨벤션

    주피터 노트북의 꿀팁들

    이미 다른 프로그래밍 언어를 사용할 줄 아는 경우라면 빠르게 훑어보세요

    Learn X in Y minutes Where X=Python

    Python 의 특징

    • 동적 타이핑
    • 인터프리터식
    • 객체 지향
    • 변수 선언 방식 : reference 방식이다
      • 모든 것을 객체로 생성해서 주솟 값을 받도록
    • 개발자끼리에서의 변수 선언 방식
      • snake case 방식이 기본이다

    왜 파이썬을 사용하는가?

    • 파이썬은 절차적 프로그래밍 언어 처럼,
      객체지향 프로그래밍 언어 처럼,
      functional way 처럼 사용할 수 있다
    • 인터프리터 ( line by line 으로 실행)

    Web Development

    • Frameworks (이미 많은 기능이 구비되어 있는 방식)
      • Django
      • Pyramid
    • Micro-Frameworks (필요한 게 있으면 붙여서 사용하는 방식)
      • Flask
      • Bottle

    Seaborn 이란

    • matplotib 기반의 시각화 라이브러리

    PEP 8 (파이썬 코딩 컨벤션)

    Linux

    • 운영체제가 아니다. 커널이다
      • 커널은 하드웨어를 제어하기 위한 것이다
        • 새로운 하드웨어가 나옴에 따라서 계속해서 커널도 업데이트 되어야 한다

    Linux(커널) (상업적 이용가능. But 소스코드 공개 해야함)

    • 배포판
      • Redhat
        • CentOS
        • Fedora
        • Oracle Linux
      • Debian
        • Ubuntu

    개발환경

    Python Development Kit

    • Python Development Kit
    • Python Distributions (파이썬 진영에서 만든 배포판)
      • Anaconda

    실행하기

    anaconda 설치

    • PATH 옵션 체크하기

    특정 폴더에서 Jupyter notebook 실행하기
    (특정 폴더가 자동으로 경로 설정됨)

    1. 자신의 work space 폴더에 들어간다
    2. shift + 오른쪽 마우스 → Open powershell ..... 클릭
    3. 명령 프롬프트 창에서 jupyter notebook 타이밍 → 엔터

    자동 jupyter notebook 실행 방법

    • bat 배치파일 생성
      • 내용 : jupyter notebook

    Jupyter notebook 단축키

    • 바로가기

    Type Hints

    """, ''' 의 기능 ↔ 다중 주석 처리 / 값

    """ hi """  # 주석 효과
    
    a = """ hi """ 
    print(a) # hi (값으로 할당될 수 있다는 의미)

    Q. -> 는 반환 타입을 말하는 건가 ? 없어도 되는 건가?

    • 반환 타입을 명시할 때 사용한다
    • 없어도 된다
    def abc(result) -> None: # 아무것도 반환하지 않는다(void)
        result 

    값 비교 - 객체 비교 (is== 의 차이)

    is는 변수가 같은 Object(객체)를 가리키면 True
    ==는 변수가 같은 Value(값)을 가지면 True
    
    a = [1, 2, 3, 4]  # Point a at a new list, [1, 2, 3, 4]
    b = a             # Point b at what a is pointing to
    b is a            # => True, a and b refer to the same object
    b == a            # => True, a's and b's objects are equal
    b = [1, 2, 3, 4]  # Point b at a new list, [1, 2, 3, 4]
    b is a            # => False, a and b do not refer to the same object
    b == a            # => True, a's and b's objects are equal

    변수에 다중 값 할당 (Assign Multiple)

    x, y, z = "Orange", "Banana", "Cherry"
    x = y = z = "Orange"
    
    fruits = ["apple", "banana", "cherry"]
    x, y, z = fruits

    Global Variable 전역 변수

    • 함수의 실행이 끝난 다음에도 없어지지 않는다
    
    x = 10          # 전역 변수
    def foo():
        x = 20      # x는 foo의 지역 변수
        print(x)    # foo의 지역 변수 출력
    
    foo()
    print(x)        # 전역 변수 출력
    '''
    겉으로 보기에는 foo 안의 x는 전역 변수인 것 같지만 실제로는 foo의 지역 변수입니다. 
    즉, 전역 변수 x가 있고, foo에서 지역 변수 x를 새로 만들게 됩니다. 
    이 둘은 이름만 같을 뿐 서로 다른 변수입니다.
    '''
    
    x = "awesome"
    def myfunc():
      global x  # x 라는 변수를 전역 변수로 사용하겠다고 설정
      x = "fantastic"
    myfunc()
    print("Python is " + x)

    네임스페이스

    • 파이썬에서 변수는 네임스페이스(namespace, 이름공간)에 저장됩니다. 다음과 같이 locals 함수를 사용하면 현재 네임스페이스를 딕셔너리 형태로 출력할 수 있습니다.
    • locals() 함수

    내장 데이터 타입

    • 바로가기

      Built-in Data Types

      Setting the Data Type

      Set (세트)

      집합을 표현하는 세트(set)도 있습니다.

        >>> fruits = {'apple', 'banana', 'orange'}
      • 세트는 원소의 순서가 유지되지 않고 중복 원소를 갖지 않는 ‘집합’으로서의 특징이 있으며, 집합 연산을 사용할 수 있습니다.

        군집 자료형 - str

        str은 문자열을 위한 자료형입니다.

      • 순서가 있고(인덱스 기반 접근),

      • 중복이 가능하며,

      • 수정이 불가능(Immutable)한 특성을 가집니다.

        s1 = "Hello, Python1" //str 변수
        s2 = 'Hello, ' + 'Python2'
        print(type(s1))
        print(len(s1)) # s1의 길이 출력
        print(s1[2]) # s1의 2번째 인덱스 값 출력
        print(s1[2:5]) # s1의 2 이상 5 미만 인덱스 값 출력
        s2[2] = a # 에러 발생!, 값 수정 불가
        #출처: https://artist-developer.tistory.com/22 [개발자 김모씨의 성장 일기]

        군집 자료형 - tuple

      • tuple 자료형은 변경 불가능한 list 자료형*으로 생각하시면 쉽습니다.

      • 순서가 있고(인덱스 기반 접근),

      • 중복이 가능하며,

      • 수정이 불가능(Immutable)한 특성을 가집니다.

        t = (10, 20, 30, 50, 40, 10, 10)
        print(t.count(10)) # 값 10의 갯수
        print(t.index(20)) # 값 20의 index

    [Python] 파이썬 자료형 총정리!!!

    Random 모듈, Random 함수

    • random() 함수

      • random number generator 을 실행하기 위한 함수이다.

      • 기본 random number generator 은 현재 시스템 시간을 사용한다

        random.seed()
        
        random.seed(a, version)
        

        https://s3-us-west-2.amazonaws.com/secure.notion-static.com/097021cd-89d8-4081-b12d-a4eb387cdda1/Untitled.png

    문자열 체크

    txt = "The best things in life are free!"
    print("free" in txt)
    
    txt = "The best things in life are free!"
    if "free" in txt:
      print("Yes, 'free' is present.")

    f 문자열 포매팅 (f-string)

    # You can also format using f-strings or formatted string literals (in Python 3.6+)
    name = "Reiko"
    f"She said her name is {name}." 
    f"{name} is {len(name)} characters long." # => "Reiko is 5 characters long."
    
    # python 방식
    print(f"She said her name is {name}." )
    # java 방식
    system.out.println("she said her name is " + name);

    3항 연산자

    xxx if 조건문 else yyyy
    
    ex) "yay!" if 0 > 1 else "nay!"

    문자열 함수 목록

    • 바로가기

    인덱스 리턴 함수 (find(), index())

    • find() 함수
    • index() 함수

    슬라이싱 (몰랐던 것)

    li[::2]   # Return list selecting every second entry => [1, 4]
    li[::-1]  # Return list in reverse order => [3, 4, 2, 1]
    [ : : ] 첫번째: 시작점 / 두번째: 끝점 / 세번째: 건너뛰는 값
    # 두번째 마다 반환
    # 반대 순서대로 반환
    
    li2 = li[:]  # => li2 = [1, 2, 4, 3] but (li2 is li) will result in false.
    # li의 값이 li2에 동일하게 할당되겠지만, 같은 객체를 가리키지 않는다 (새로운 객체가 생성된다)

    특정 요소 제거

    del 키워드 (예약어)

    • 인덱스를 이용하여 해당 요소를 삭제하는 방법

    remove 함수

    • 값으로 해당 요소를 삭제하는 방법
    del li[2]  # li is now [1, 2, 3] # 인덱스 2에 위치한 값을 제거한다
    
    li.remove(2)  # li is now [1, 3] # 값이 2인 요소를 제거한다

    isinstance() 함수 - 특정 클래스/데이터 타입 검사

    사용 : isinstance(인스턴스, 클래스/데이터타입)

    [Python] 파이썬 자료형 확인하는 isinstance 함수

    딕셔너리 인덱싱 가능

    • 리스트로 형변환 해야 인덱싱 가능
    dict_a = {"a":3, "b":5}
    
    a = list(dict_a)
    a[1]  # 'b' 반환

    List - Tuple - Set - Dictionary 비교

    [Python] List(리스트) vs Tuple(튜플) vs Set(셋) vs Dictionary(딕셔너리)

    Python 중급 (리스트, 셋, 튜플, 딕셔너리)

    소스코드 많이 있다

    [Python] 리스트(list)와 튜플(tuple) 그리고 딕셔너리(dictionary), 셋(set)

    관련 함수

    [Python] Chapter 3. 파이 채우기: 리스트, 튜플, 딕셔너리, 셋

    질문

    • dir() 해서 목록들이 나오는데 _xxx __xxx 이런 것들은 무엇을 의미하는가?

      • 히든 메소드 (클래스 부분에서 등장할 예정)
      • dunder method
    • jupyter notebook ↔ google colab 차이

      jupyter notebook

      • 각자의 pc의 환경에서 구동하는 것

        google colab

      • google 클라우드 환경에서 구동하는 것

    • 웹 백엔드 (java ↔ python)

      • 스타트업이나 새로 시작하는 기업들은 파이썬 웹프레임워크를 많이 사용하고 있다
        기존에 많은 기업들이 java를 활용하였기 때문에 계속 java를 사용하고 있다

        python 웹프레임워크

      • Django - Flask

        • Django :
        • Flask : 급속도로 성장하고 있다. micro-web framework 라고 기능적으로 부족한 것이 아니다

    댓글

Designed by Tistory.