2015-12-22 2 views
-2

Я работаю с некоторым кодом на Python, и я не могу понять, как получить представление байта, и строковая переменная для совместной работы.Работа с строкой и байтом в python

у меня есть:

secret = b'a very secret message' 

если переопределить это как:

myrealsecret = 'Hey there this is a real secret' 
secret = b+myrealsecret 

Почему? и как я могу получить любое значение в myrealsecret, чтобы играть красиво с secret в качестве представления в байтах?

спасибо.

+0

Не обман ........ хотя я вижу, где вы идете с этим предположением. Я спросил, как я могу использовать свои две ссылки на переменные вместе. – CodeTalk

+0

Вам нужно либо '.encode()' свою строку, либо '.decode()' ваши байты, в зависимости от того, хотите ли вы, чтобы результат был байтом или str. – senshin

+0

Ну, можете ли вы объяснить, что делает * как получить представление байта, а строковая переменная для совместной работы * означает? Однако 'b'test '+' text'' поднять' TypeError', если вы используете Python 3. –

ответ

3

Если вы хотите, чтобы результат байт, encode строки (кодировка по умолчанию utf8):

>>> secret+myrealsecret.encode() 
b'a very secret messageHey there this is a real secret' 

Если вы хотите, чтобы результат должна быть строкой, decode байт:

>>> secret.decode()+myrealsecret 
'a very secret messageHey there this is a real secret' 

Или просто укажите myrealsecret как объект с байтами для начала:

>>> myrealsecret = b'Hey there this is a real secret' 
>>> secret + myrealsecret 
b'a very secret messageHey there this is a real secret' 
+0

Наконец, кто-то, кто просто не подходил к выводам. Это место, спасибо, так много! – CodeTalk

Смежные вопросы