답변
에서 여기 :
ord () 함수는 char의 int 값을 얻습니다. 그리고 숫자로 재생 한 후 다시 변환하려면 함수 chr ()이 트릭을 수행합니다.
>>> ord('a')
97
>>> chr(97)
'a'
>>> chr(ord('a') + 3)
'd'
>>>
Python 2에는 서 수가 인수 인 유니 코드 문자를 unichr
반환하는 함수 도 있습니다 .unichr
>>> unichr(97)
u'a'
>>> unichr(1234)
u'\u04d2'
파이썬 3에서는 chr
대신 사용할 수 있습니다 unichr
.
답변
주 ord()
당신에게 그 자체로 ASCII 값을 제공하지 않습니다; 어떤 인코딩이든 문자의 숫자 값을 제공합니다. 따라서 ord('ä')
Latin-1을 사용하는 경우 결과는 228이 될 수 있고 TypeError
UTF-8을 사용 하는 경우 에는 결과가 발생할 수 있습니다 . 유니 코드를 전달하면 유니 코드 코드 포인트를 대신 반환 할 수도 있습니다.
>>> ord(u'あ')
12354
답변
당신이 찾고있는:
ord()
답변
허용되는 대답은 정확하지만 전체 ASCII 문자를 한 번에 ASCII 코드로 변환해야하는 경우 더 영리하고 효율적인 방법이 있습니다. 대신에 :
for ch in mystr:
code = ord(ch)
또는 약간 더 빠릅니다.
for code in map(ord, mystr):
코드를 직접 반복하는 Python 기본 유형으로 변환합니다. 파이썬 3에서는 사소합니다.
for code in mystr.encode('ascii'):
파이썬 2.6 / 2.7에서는 Py3 스타일 bytes
객체 가 없기 때문에 약간 더 관련 bytes
이 str
있지만 문자별로 반복되는 별칭입니다 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 모두 로컬 테스트, A는 반복에서 str
의 ASCII 코드를 사용하여 얻을 map(ord, mystr)
A의 두 배 정도 오래 걸리는 떨어져 시작 len
10 str
사용하는 것보다 bytearray(mystr)
Py2 또는 mystr.encode('ascii')
Py3에와 같이 str
더 이상 얻을, 승수는 지불 map(ord, mystr)
상승 ~ 6.5x-7x까지
유일한 단점은 전환이 한 번에 이루어지기 때문에 첫 번째 결과가 조금 더 오래 걸릴 수 있으며 실제로 엄청난 str
양의 일시적인 bytes
/ bytearray
가있을 수 있지만 이것이 페이지 스레 싱을 강요하지 않는 한, 이것은 중요하지 않습니다 .
답변
문자의 ASCII 코드를 얻으려면 ord()
함수를 사용할 수 있습니다 .
예제 코드는 다음과 같습니다.
value = input("Your value here: ")
list=[ord(ch) for ch in value]
print(list)
산출:
Your value here: qwerty
[113, 119, 101, 114, 116, 121]
답변
