Как написать пять нулей?

Напишите программу, которая заполняет число 0. Один байт состоит из 8 бит. пример 101 = 00000101. Я хотел написать программу, но не понял как написать пять нолей перед 101.

a = input()
b = 8 - len(a)
print(b)

А потом, как сделать что бы пять нолей с начала, я не знаю.


Ответы (4 шт):

Автор решения: Zhihar

вариант 1:

a = input()
b = 8 - len(a)
print(f'{"0" * b}{a}')

вариант 2:

a = input()
print(('0' * 8 + a)[-8:])
→ Ссылка
Автор решения: gil9red

Используйте метод строки zfill:

print('101'.zfill(8))
# 00000101

Пример:

a = input()
b = a.zfill(8)
print(b)

S.zfill(width), где S - строка, делает длину строки не меньшей width, по необходимости заполняя первые символы нулями. Справка.

→ Ссылка
Автор решения: GrAnd

Если через f-строки, то даже длину считать не надо.

b = f"{a:0>8}"
→ Ссылка
Автор решения: Arty

Для коллекции добавляю ещё одно экзотическое решение, без строковых операций, только использующее конвертацию между системами счисления (двоичной и десятичной) (конечно, на заднем плане в неявном виде там работа со строками всё таки идёт).

Заодно, моя микро-программа проверяет корректность введённых данных, что введено именно целое число только из 0 и 1 цифр и ничего кроме, если введено что то другое - будет исключение.

Попробовать онлайн!

print(bin(256 + int(input(), 2))[3:])

Ввод:

101

Вывод:

00000101
→ Ссылка