-3

私が失敗している簡単な問題。文字列を取得したので、その長さを 16 進数でエンコードした値を見つける必要があります。以下は正しい(そして機能している):

sample="MyTest1234"
print repr(chr(len(sample)))

出力は次のとおりです。 '\n'

ただし、もちろん、私の「サンプル」が 255 を超えるとすぐに:

sample="MyTest1234"*26
print repr(chr(len(sample)))

次のように失敗します。 ValueError: chr() arg not in range(256)

256 より大きい文字列の長さを計算したい場合、どのようになりますか?

4

2 に答える 2

4

数値を 16 進数に変換する組み込み関数があり、それは と呼ばれhex()ます。例として、2 つの文字列を次に示します。

>>> sample="MyTest1234"
>>> print hex(len(sample))
0xa
>>> sample="MyTest1234"*26
>>> print hex(len(sample))
0x104

接頭辞が必要ない場合は、0x切り捨てる必要があります。

>>> print hex(len(sample))[2:]
a
于 2013-05-31T12:23:20.680 に答える