2017-09-11 7 views
0

私はPython 3を使用しています。 私のスクリプトではord()関数も使用しています。 私はコンソールでord('\xff')を入力した場合には、ord('\xff')作業を行いどのようpythonのord()関数にエスケープシーケンスを渡すには?

error: 
TypeError: ord() expected a character, but string of length 4 found 

を得ることなくord()関数に(変数に格納されている)\xff を挿入する方法はあり255

を返しますか? ord()は文字列を読みませんか?それから何を読んでいる?

答えて

1

このデータはユーザーの入力によって届いていますか?この場合は、あなたが読むために何を意味するのか、単一の文字が大き4.

In [1320]: v = input() 
\xff 

In [1321]: v 
Out[1321]: '\\xff' 

回避策の一つの文字列として文字通りに読まれたようにast.literal_evalを使用することです:

In [1326]: import ast 

In [1327]: v = ast.literal_eval('"{}"'.format(v)) 

In [1329]: ord(v) 
Out[1329]: 255 
+0

ありがとう!これは私が意味するものです!私はord()が単一の文字としてそれを読んでいないと考えました。 –

関連する問題