¿AYUDA A PRINCIPIANTE? Script de conversión numérica

Iniciado por bdred, 31 Marzo 2018, 16:09 PM

0 Miembros y 1 Visitante están viendo este tema.

bdred

Hola, estoy intentando hacer un script de conversión numérica entre sistemas...
Específicamente quiero convertir un numero decimal a binario.

A la hora de convertir un numero entero no hay problema pero no puedo convertir un número decimal... (12.004 -> binario)


Les agradecería una opinión sobre métodos más eficientes para hacer estos scripts...
Quiero tener un script que convierta base: 16, 10, 8 ,2 a otro sistema numérico.

Está bien usar (bin)? ¿Algún consejo sobre librería para esto?
Gracias por su tiempo. Dejo lo que tengo echo. Saludos!



def inicio():
print ("-- Menu --")
print("***********")
print ("1- Conversión decimal a binario")
print ("2- Conversión binario a decimal")
print ("3- Conversión binario a hexadecimal")
print ("4- Salir de la aplicación")
print("")
menu = input("ingrese una opción: ")


if menu == "1":
decimal = int(input("Ingrese número decimal: "))
decbin(decimal)
elif menu == "2":
binario = int(input("Ingrese número binario: "))
elif menu == "3":
binario = int(input("Ingrese número binario: "))
else:
print ("Ha ingresado una opción incorrecta.")

def decbin(decimal):
print("Conversión de Decimal (Base 10) a Binario (Base 2)")
binario = bin(decimal)
print ("Su número binario es: ", str(binario))

inicio()

Sentex

#1
Yo he probado con un decimal y me ha funcionado.

13.421 = 0b1101
Preguntas o peticiones en twitter o discord:

Discord: MrSentex#1227
Twitter: @fbi_sentex

bdred

Con el código que pase al poner un número real me tira de error:
ValueError: invalid literal for int() with base 10: '124.45'

y al poner decimal = float(input("Ingrese número decimal: ")) me da error:
TypeError: 'float' object cannot be interpreted as an integer

:/:/:/:/

Sentex

Pa ti

Código (python) [Seleccionar]

# -*- coding: utf-8 -*-

def inicio():
print ("-- Menu --")
print("***********")
print ("1- Conversión decimal a binario")
print ("2- Conversión binario a decimal")
print ("3- Conversión binario a hexadecimal")
print ("4- Salir de la aplicación")
print("")
menu = raw_input("ingrese una opción: ")


if menu == "1":
  decimal = raw_input("Ingrese número decimal: ")
  decbin(decimal)
elif menu == "2":
  binario = raw_input("Ingrese número binario: ")
elif menu == "3":
  binario = raw_input("Ingrese número binario: ")
else:
  print "Ha ingresado una opción incorrecta."

def decbin(decimal):
print("Conversión de Decimal (Base 10) a Binario (Base 2)")
binario = bin(int(round(float(decimal))))
print "Su número binario es: ", str(binario)

inicio()


No hace falta print("") solo con print "" funciona en versiones desde la 2.7 en adelante
Preguntas o peticiones en twitter o discord:

Discord: MrSentex#1227
Twitter: @fbi_sentex

bdred

Genial Sentex! me hacía falta usar el método "round", ahora si funciona.

Vale aclarar que en Python 3.x es necesario el uso de paréntesis en los print y ahora ya no se usa raw en los input... Solo input o el tipo de dato antes del input. Gracias ;)

Sentex

Yo es que uso python 2.7 ya que es la version con mas cosicas y la que a mi gusto funciona mejor.
Preguntas o peticiones en twitter o discord:

Discord: MrSentex#1227
Twitter: @fbi_sentex