[Knowledge Snippet] Python

carpediem·2022년 12월 20일
0

Library

목록 보기
2/4

Named Tuple

  • 파이썬의 자료형 중 하나.

  • 튜플이지만 항목에 이름으로 접근이 가능하다.

  • 원래 튜플은 콤마(,)로 구분되는 자료형으로 요소 값을 수정 불가능한 것이 특징이다.

  • 기본적으로 튜플도 인덱싱이 가능하여 t=(1,2,3)과 같은자료형은 t[0] return 1 과 같이 인덱스로 값을 가져올 수 있으나, 네임드 튜플은 더욱 특별하게 t.name 과 같이 사용자가 이름을 붙여 사용할 수 있다.

  • 기본 자료형이 아니며, python의 built-in function인 collections에 구현이 되어있다.

  • 딕셔너리 자료형과 전환이 가능하다.

# dictionary to namedtuple
info = {'name': 'author', 'age':20, 'number':'000-0000-0000'}
card = namedtuple('card', info.keys())(*info.values())

File I/O

  • open & close
# open a file and returns a file object. 
f = open(fname, 'r', encoding='utf-8')
# we are done with performing operations on the file.
f.close()
  • tell & seek
    • Byte 단위로 포인터가 이동한다.
    • tell 함수는 현재 포인터의 위치를 알려준다.
f = open(fname, 'r', encoding='utf-8')
# reuturn string
# f.readline() -> pointer 이동.
# get the current file position.
f.tell() 
# Out 114
# change the file position to offest bytes inreference to from 
# f.seek(offset, from=seek_set) 
f.seek(0,0)

출처 : https://www.programiz.com/python-programming/file-operation

Typing

  • 파이썬의 PEP에서는 유형 주석에 대해서 사용할 수 있는 방법을 소개하고 있다.
  • 실제로 코드를 작성할 때, 함수의 입력값은 어떤 형태로 들어갈 것인지, 결과는 어떤 형태로 반환될 것인지 미리 정의하여 typing을 이용하는 것은 코드를 알아보는데 큰 도움이 된다.
    -아래는 기본 유형 중 Optional 에 대한 예제와 어떤 상황에서 쓰는지 정리한다.

  • Optional [...] 은 Union[..., None]의 줄임 형태이다.
  • 만약, 입력값이 어떤 유효한 타입의 형태가 될 수 있고, 또한 None 이 될 수 있는 상황이라면,
  • Keyword argument 를 쓰고 default = None으로 둔다면, Optional로 표현을 하여야 햔다.
from typing import Optional

def test(a: Optional[dict] = None) -> None:
    #print(a) ==> {'a': 1234}
    #or
    #print(a) ==> None

def test(a: Optional[list] = None) -> None:
    #print(a) ==> [1, 2, 3, 4, 'a', 'b']
    #or
    #print(a) ==> None

출처 : https://stackoverflow.com/questions/51710037/how-should-i-use-the-optional-type-hint

Callback

  • Callback 함수는 다른 함수에 대한 인수 역할을 하는 함수로, 다른 함수에서 callback 함수를 호출할 수 있다.
  • '비동기적'이라는 말과도 함께 나오는데, 이는 전달받은 callback 함수가 바로 실행되는 것은 아닐 수 있기 때문이다.
def square(val):
  return val**2

def caller(func, val):
  return func(val)

caller(get_square, 5)

출처 : https://frhyme.github.io/python-lib/callback_func/

Bitmask in python

  • Bitmask는 정수를 이진수로 표현하는 테크닉이다.
  • 비트 연산으로 표현하는데 유리하며 이를 이용해서 문제 풀이에 종종 사용된다.
  • 이를 파이썬에서 어떻게 표현할까? 입력 시에, "0b"를 앞에 붙여 이진수를 표현한다.
  • 출력시에는 bin 함수를 이용하여 이진수를 출력한다.
num = 0b1001
print(num) 
# Out
9
  • And operation
print(bin(0b1100 & 0b1001)) 
# Out
0b1000
  • Or operation
print(bin(0b1100 & 0b1001)) 
# Out
0b1101
profile
Seize the day!

0개의 댓글