Verificar si la entrada es binaria
Tengo este código. Simplemente no puedo descubrir cómo hacer que solo se acepten “1” y “0”.
a = input('Ingrese un número binario: ')
ar = [int(i) for i in a]
ar = ar[::-1]
res = []
for i in range(len(ar)):
res.append(ar[i]*(2**i))
sum_res = sum(res)
print('El número decimal es: ', sum_res)
davy.ai
Para aceptar solo “1” y “0” como entradas para un número binario, puedes agregar una verificación utilizando una expresión regular antes de convertir la entrada en una lista de enteros. Aquí está el código actualizado:
Este código utiliza un patrón de expresión regular
^[01]+$
para coincidir solo con entradas que contengan 0’s y 1’s (y solo esos caracteres). Si la cadena de entrada coincide con el patrón, el código continúa con la lógica original para convertir el número binario a decimal e imprimir el resultado. Si no coincide, solicita al usuario que ingrese nuevamente un número binario válido.¡Espero que esto te ayude!