복붙노트

[PYTHON] 문자의 ASCII 값을 얻는 방법?

PYTHON

문자의 ASCII 값을 얻는 방법?

파이썬에서 문자의 ASCII 값을 int로 가져 오는 방법은 무엇입니까?

해결법

  1. ==============================

    1.여기에서:

    여기에서:

    >>> ord('a')
    97
    >>> chr(97)
    'a'
    >>> chr(ord('a') + 3)
    'd'
    >>>
    

    파이썬 2에는 unichr 함수도 있으며, ordinal이 unichr 인수 인 유니 코드 문자를 반환합니다.

    >>> unichr(97)
    u'a'
    >>> unichr(1234)
    u'\u04d2'
    

    파이썬 3에서는 unichr 대신 chr을 사용할 수 있습니다.

    ord () - 파이썬 3.6.5rc1 문서

    ord () - Python 2.7.14 문서

  2. ==============================

    2.ord ()는 ASCII 값 자체를 제공하지는 않습니다. Latin-1을 사용하고 있다면 ord ( 'ä')의 결과는 228이 될 수 있고, UTF-8을 사용하고 있다면 TypeError를 발생시킬 수 있습니다. 8. 유니 코드를 전달하는 대신 유니 코드 코드 포인트를 반환 할 수도 있습니다.

    ord ()는 ASCII 값 자체를 제공하지는 않습니다. Latin-1을 사용하고 있다면 ord ( 'ä')의 결과는 228이 될 수 있고, UTF-8을 사용하고 있다면 TypeError를 발생시킬 수 있습니다. 8. 유니 코드를 전달하는 대신 유니 코드 코드 포인트를 반환 할 수도 있습니다.

    >>> ord(u'あ')
    12354
    
  3. ==============================

    3.당신이 찾고있는:

    당신이 찾고있는:

    ord()
    
  4. ==============================

    4.허용 된 대답은 정확하지만 한꺼번에 ASCII 문자를 ASCII 코드로 변환해야하는 경우 더 능숙하고 효율적인 방법이 있습니다. 대신에 :

    허용 된 대답은 정확하지만 한꺼번에 ASCII 문자를 ASCII 코드로 변환해야하는 경우 더 능숙하고 효율적인 방법이 있습니다. 대신에 :

    for ch in mystr:
        code = ord(ch)
    

    또는 약간 더 빠름 :

    for code in map(ord, mystr):
    

    코드를 직접 반복하는 Python 기본 유형으로 변환합니다. 파이썬 3에서는 그다지 중요하지 않습니다.

    for code in mystr.encode('ascii'):
    

    Python 2.6 / 2.7에서는 Py3 스타일의 바이트 객체가 없으므로 (바이트는 문자별로 반복되는 str의 별칭 임) Python 스타일 객체가 없으므로 약간 더 복잡해졌습니다.하지만 bytearray가 있습니다.

    # If mystr is definitely str, not unicode
    for code in bytearray(mystr):
    
    # If mystr could be either str or unicode
    for code in bytearray(mystr, 'ascii'):
    

    서수로 반복적으로 반복하는 형식으로 인코딩하면 변환 속도가 훨씬 빨라집니다. Py2.7 및 Py3.5 모두에 대한 로컬 테스트에서 map (ord, mystr)을 사용하여 ASCII 코드를 가져 오는 str을 반복하면 Py2 또는 mystr에서 bytearray (mystr)를 사용하는 것보다 len 10 str에 약 두 배의 시간이 걸립니다 .encode ( 'ascii')를 Py3에 추가하면 str이 길어지면 map (ord, mystr)에 대해 지불 한 배율이 ~ 6.5x-7x로 상승합니다.

    유일한 단점은 전환이 한꺼번에 이루어 지므로 첫 번째 결과가 조금 더 오래 걸릴 수 있으며 엄청난 양의 문자열이 비례 적으로 큰 임시 바이트 / bytearray를가집니다. 그러나 이것이 페이지를 쓰러 뜨리면 않는 한, 이것은 아닙니다. 중요 할 것 같다.

  5. from https://stackoverflow.com/questions/227459/how-to-get-the-ascii-value-of-a-character by cc-by-sa and MIT license