[Python] 개요

kkiyou·2021년 5월 21일
0

Python

목록 보기
1/12

1. 파이썬 라이브러리

  1. 수치해석 및 기계학습
    • numpy, scipy, scikit-learn, pandas
  2. Deep Learning
    • Tensorflow, theano, keras, Pytorch
  3. 데이터 시각화
    • matplotlib, seaborn, bokeh
  4. Web Framework
    • Django
  5. ...


2. 파이썬의 특징

  • 객체지향 프로그래밍(OOP, Object Oriented Programming)
  • 대 ∙ 소문자를 구분한다.
  • 모든 명령어는 소문자이다.
  • 숫자는 0부터 센다
Hello,World!
0123456789101112
-13-12-11-10-9-8-7-6-5-4-3-2-1
>>> a = "Hello, world!"
>>> pirnt(a[3])
l
>>> print(a[-3])
r


3. PEP8 coding conventions

  • 들여쓰기(indentation)는 Tab 또는 공백(space) 4개를 사용하되, 혼용해서 사용하지 않는다. 하지만, 공백을 사용하는 것이 바람직하다.

  • 한 줄에서 사용할 수 있는 문자의 최대 개수는 79개이다.

  • 연산자가 사용된 문자열을 줄바꿈할 때, 연산자가 맨 앞에 오도록 줄바꿈한다.

    income = (gross_wages
              + taxable_interest
              + (dividends - qualified_dividends)
              - ira_deduction
              - student_loan_interest)
  • 최상위 함수 및 클래스는 2줄을 띄우고,
    클래스 내 메소드는 한줄을 띄운다.

    class Cl1:
        pass
    			# Blank Line
    			# Blank Line
    class Cl2:
        def me1(self):
            pass
    			# Blank Line
        def me2(self):
            pass
  • 구문 내 불필요한 공백은 사용하지 않는다.
    - 대괄호[]와 소괄호() 양쪽 끝에 공백을 사용하지 않는다.
    - ,, :, ; 앞에 공백을 사용하지 않는다.

    # Correct:
     spam(ham[1], {eggs: 2})
    
    # Wrong:
    spam( ham[ 1 ], { eggs: 2 } )
    
    ############################
    
    # Correct:
    foo = (0,)
    
    # Wrong:
    bar = (0, )
    
    ############################
    
    # Correct:
    if x == 4: print x, y; x, y = y, x
    
    # Wrong:
    if x == 4 : print x , y ; x , y = y , x
    
    ############################
    
    # Correct:
    ham[1:9], ham[1:9:3], ham[:9:3], ham[1::3], ham[1:9:]
    ham[lower:upper], ham[lower:upper:], ham[lower::step]
    ham[lower+offset : upper+offset]
    ham[: upper_fn(x) : step_fn(x)], ham[:: step_fn(x)]
    ham[lower + offset : upper + offset]
    
    # Wrong:
    ham[lower + offset:upper + offset]
    ham[1: 9], ham[1 :9], ham[1:9 :3]
    ham[lower : : upper]
    ham[ : upper]
    
    ############################
    
    # Correct:
    i = i + 1
    submitted += 1
    x = x*2 - 1
    hypot2 = x*x + y*y
    c = (a+b) * (a-b)
    
    # Wrong:
    i=i+1
    submitted +=1
    x = x * 2 - 1
    hypot2 = x * x + y * y
    c = (a + b) * (a - b)
  • keyword argument와 default parameter value의 =은 붙여 쓴다.

    # Correct:
    def complex(real, imag=0.0):
        return magic(r=real, i=imag)
    
    # Wrong:
    def complex(real, imag = 0.0):
        return magic(r = real, i = imag)


3.1. 명명 규칙

Naming Conventions

  • class 명은 각 단어의 첫 글자를 대문자를 사용해 연결한다.(CapWords case convention)

    class ThisIsClass:
        pass
  • 함수명과 method명 그리고 변수명은 소문자로 작성하며 '_'(underscore)을 사용해 각 단어를 연결한다.(Snake case convention)

  • instance method의 첫 번째 인자는 항상 self를 사용한다.

  • instance class의 첫 번째 인자는 항상 cls를 사용한다.



4. 변수명 규칙

Variable Naming Conventions

  • 변수명을 설정할 때 특수문자는 '_'(underscore)만 사용할 수 있다.
  • 변수명은 '_'(underscore)로 시작할 수 있다.
    - _xxxx: 내부적으로 사용되는 변수를 의미한다.
    - xxxx_: Keyword와의 충돌을 피하기위해서 사용한다.
    - __xxx: Class Attribute로 사용한다.
    - xx___: 사용자가 조정할 수 있는 namespace 내의 Attribute를 의미한다.
  • 변수명을 설정할 때 숫자로 시작할 수 없다.
  • 변수명을 한글로 만들 수 있으나, 일반적으로 사용하지 않는다.
  • 변수명에서 l, O, I는 사용을 자제한다.
    • 소문자 L과 대문자 I는 사용하는 폰트에 따라 서로 같게 표현될 수 있다.
    • 대문자 O는 숫자 0과 헷갈릴 수 있다.

참고자료 1



5. Keyword

Keyword는 파이썬에서 이미 예약되어있는 문자열을 나타내는 말로 변수명, 클래스명 등으로 사용할 수 없다.

>>> import keyword
>>> print(keyword.kwlist)
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
>>> print(len(keyword.kwlist))
35 # python 3.8 버전에서 keyword는 35개이다. 업데이트가 진행되면 변경될 수 있다.

6. Identifier

Identifier(식별자)는 다른 것들과 구분하기 위해 사용하는 변수, 상수, 함수, 사용자 정의 타입의 '이름'을 의미한다.

0개의 댓글