여기에서 여기로 이동합니다:
함수 ord()는 정숫값을 가져옵니다. 를 가져옵니다. 그리고 원할 경우 를 가지고 놀다가 다시 변환하려면 숫자를 가지고 놀다가 다시 변환하고 싶다면 chr() 함수를 사용하면 됩니다.
>>> ord('a')
97
>>> chr(97)
'a'
>>> chr(ord('a') + 3)
'd'
>>>
파이썬 2에는 unichr
함수도 있는데, 이 함수는 서수를 unichr
인수로 하는 유니코드 문자를 반환합니다:
>>> unichr(97)
u'a'
>>> unichr(1234)
u'\u04d2'
파이썬 3에서는 unichr
대신 chr
을 사용할 수 있습니다.
'ord()는 문자가 어떤 인코딩을 사용하든 그 자체로 ASCII 값을 반환하는 것이 아니라 문자의 숫자 값을 반환한다는 점에 유의하세요. 따라서
ord('ä')의 결과는 라틴-1을 사용하는 경우 228이 될 수 있고, UTF-8을 사용하는 경우
TypeError`를 발생시킬 수 있습니다. 유니코드를 전달하면 유니코드 코드 포인트를 대신 반환할 수도 있습니다:
>>> ord(u'あ')
12354
하지만, 정확한 답이 있는 것이 더 효율적인 방법으로 수락됨 영리한 / bunch of ASCII 문자를 ASCII 코드 변환할지 하는 경우 이 전체를 한 번에 한 것이다. 대신 하고 있다.
for ch in mystr:
code = ord(ch)
또는 조금 더 빠르게:
for code in map(ord, mystr):
는 파이썬 코드를 변환할 수 있는 기본 유형이 직접. # 39 의 파이썬 3, it& 대한 사소한:
for code in mystr.encode('ascii'):
# 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'):
기본적으로 의해 가져온 것이 훨씬 더 빠르게, 서수 고말은 변환 댁이라면 인코딩입니다 유형으로 모두 국내 실험을 사용하여 ASCII 코드 '와' a '는 str, 반복 Py3.5 Py2.7 afaq 매핑해야 (ord, 미스트)' 가 '렌' 10 '에 관한 한 두 배 정도 오프하도록 str' 또는 '미스트리니고데 Py2 bytearray (미스트)' 를 사용하는 것보다 ' (& # 39, ascii& # 39;)' 를 얻을 수 있는 만큼 더 이상 ',', '승수입니다 Py3 str (ord, 미스트)' 을 지불한 매핑해야 6.5x-7x. 다 ~
그 결과 한 번에요 변환은 유일한 문제 때문에 좀 더 오래 걸릴 수 있으며, 그리고 '처음' 비율에 따라 '/' '정말 엄청난 str 갖고 있지 않는 한, 하지만 이렇게 큰 임시 bytearray' 로 대승을 바이트입니다 너회는 페이지, t # 39 이 isn& 것으로 문제가 아니었다.