2

私は次の2つの変数を持っています:

a = chr(92) + 'x11'
b = '\x11'
print 'a is: ' + a
print 'b is: ' + b

これらの print ステートメントの結果:

a is: \x11
b is: <|        # Here I am just showing a representation of the symbol that is printed for b

chr(92) 呼び出しを使用して、変数 a が変数 b と同じものを出力するようにするにはどうすればよいですか? 前もって感謝します。

4

3 に答える 3

3

他の答えはb、あなたが得たものをあなたに与える方法をあなたに示していますa。あなたaが得たものb(私があなたを正しく読んだ場合、あなたが求めているもの)をあなたに与えたいのなら、あなたはエスケープシーケンスをデコードする必要があります:

>>> a
u'\\x11'
>>> a.decode('string-escape')
'\x11'

結果としてUnicode文字列が必要な場合は、unicode-escape代わりにを使用することもできます。string-escape

于 2012-08-01T21:05:44.510 に答える
2

文字列リテラルのドキュメントを確認してください。

バックスラッシュは Python 文字列のエスケープ文字であるため、文字列にリテラルのバックスラッシュを含めるには、2 つの連続したバックスラッシュを使用してエスケープする必要があります。または、生の文字列リテラルを使用して、バックスラッシュのエスケープ動作を抑制することができますr。例えば:

  • バックスラッシュのエスケープ:

    b = '\\x11'
    
  • 生の文字列リテラルを使用する:

    b = r'\x11'
    

私があなたの質問を誤解していて、または同等でbある必要があるが、エスケープされた形式で表示したいだけの場合は、次のように使用できます。'\x11'chr(17)repr()

>>> b = '\x11'
>>> print 'b is: ' + repr(b)
b is: '\x11'

引用符が必要ない場合は、string_escape encodingを使用してください:

>>> print 'b is: ' + b.encode('string_escape')
b is: \x11

または とa同じになるにはb、 を使用できますa.decode('string_escape')

于 2012-08-01T20:57:13.510 に答える
0

\x11^QASCII の制御文字の 16 進値のようです。

\021  17  DC1  \x11  ^Q    (Device control 1) (XON) (Default UNIX    START char.)

\リテラルを取得するには、をエスケープする必要があります\x11

于 2012-08-01T20:58:11.873 に答える