Когда вы выполняете b'\n'
, вы создаете экземпляр байтов, содержащий одно значение 10.
Когда вы обращаетесь к элементу экземпляра байтов, возвращается int, как ожидалось (байт - это 8-битный беззнаковый int).
Таким образом, b'\n'[-1] == b'\n'
имеет смысл False
, значение 10 отличается от экземпляра bytes, содержащего один байт
Когда вы используете конструктор bytes с int, он создает экземпляр заполненных нулями байтов размера, который вы указали в качестве входных данных (python do c).
Таким образом, bytes(b'\n'[-1]) == b'\n'
также имеет смысл, список из 10 байтов значений 0 не равен списку только байтов значения 10.
Надеюсь, это поможет