次のスニペットが機能しない理由を誰かに説明してもらえますか? 結果の 16 進文字列の長さはわずか 2 文字です。
#!/usr/bin/python
s = 'Hello, World!'
hs = ''
for i in range(len(s)):
c = s[i:1]
hs += c.encode('hex')
print hs
次のスニペットが機能しない理由を誰かに説明してもらえますか? 結果の 16 進文字列の長さはわずか 2 文字です。
#!/usr/bin/python
s = 'Hello, World!'
hs = ''
for i in range(len(s)):
c = s[i:1]
hs += c.encode('hex')
print hs
c = s[i:1]
c = s[i:i+1]
または_c[i]
Python では、文字列 itellf をループできるため、例をスライスする必要はありません。
hs = ''
for c in s:
hs += c.encode('hex')
str.join
または、連結よりも高速なを使用したワンライナー:
hs = "".join([c.encode('hex') for c in s])
i
各ループで、 (増加している) から位置にスライスしようとしているためです。1
つまり、i
> 1 の後、空の文字列が得られます...
ただし、あなたがやっているようです:
from binascii import hexlify
s = 'Hello, World!'
print hexlify(s)
...難しい方法...