Условие для двоичного числа или нет - PullRequest
0 голосов
/ 10 апреля 2020

Я пытаюсь сделать простую программу для преобразования двоичного числа в десятичное число. Я хотел бы сначала написать условие, проверять, является ли данное число двоичным или нет.
Как мне это сделать?
Кроме того, программа работает нормально, без каких-либо ошибок, но боюсь, что если задано недвоичное число, она все равно выполняет свою работу.

Ввод

print("Binary to Decimal")

bin = input("Give a binary number : ")
bin = [int(i) for i in bin]

powers = [i for i in range(len(bin)-1,-1,-1)]

for i in range(len(bin)):
  bin[i] = bin[i] * 2**(powers[i])
decimal = sum(bin)
print("The corresponding Decimal digit is : %d"%(decimal))



Вывод

Binary to Decimal
Give a binary number : 101
The correspnding Decimal digit is : 5

Также, если вы найдете какие-либо исправления или хотите внести какие-либо предложения, пожалуйста, не стесняйтесь предложи мне ниже.

Ответы [ 3 ]

0 голосов
/ 10 апреля 2020

Попробуйте pythoni c, способ не для проверки , а для попытки преобразования и перехвата исключения, если ввод неправильный. Это Проще просить прощения, чем разрешение prinicple :

b = input("Give a binary number : ")
try:
    print(int(b, 2))
except ValueError:
    print("not binary")

Если вы все еще хотите проверить простой тест, используйте all():

if all(n in ('1','0') for n in b):
   # it's all 1's and 0's
0 голосов
/ 10 апреля 2020

вы можете проверить с помощью регулярного выражения

import re

if re.match("^[01]+$", '011001'):
   //then proceed
else:
   //do something for non-binary
0 голосов
/ 10 апреля 2020

Вы можете проверить, что если строка содержит любое другое число, а не 0 и 1, то это не двоичное число.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...