La conversión de bytes a cadena con str () devuelve cadena con marcas de voz

Digamos que tengo una variable que contiene bytes:

>>> a = b'Hello World'

Se puede verificar con:

>>> type(a)
<class 'bytes'>

Ahora trato de convertir un en una cadena constr():

>>> b = str(a)

y efectivamente es una cadena:

>>> type(b)
<class 'str'>

Ahora intento imprimirb pero obtengo un resultado totalmente inesperado:

>>> print(b)
b'Hello World'

Devuelve una cadena, como era de esperar, pero también mantiene elb (símbolo de byte) y el' (comillas).

¿Por qué hace esto, y no solo imprime el mensaje entre comillas?

Respuestas a la pregunta(4)

Su respuesta a la pregunta