[SOLUCIONADO] Python - De str a int (ayuda)

Iniciado por Biodude9456, 28 Febrero 2016, 00:07 AM

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

Biodude9456

Vaya vaya, estoy que no paro con las preguntitas hoy jaja
Código (python) [Seleccionar]
from time import sleep
import sys
name = input("Di tu nombre: ")
while not (name.isalpha()):
  name = input("Pon tu nombre... ")

sleep(0.4)
print("Hola bebesss")
sleep(0.8)
print("Perdón, quería decir "+ name.title()+ " :(")
sleep(1.5)
seguir = "true"
while seguir:

  number1 = input(" Di el numero a multiplicar: ")
  while not (number1.isdigit()):
     number1 = input("He dicho número: ")
     if (number1.isdigit()):
        float(number1)
        continue
     
  number2 = input(" Di cuantas veces quieres multiplicarlo: ")
  while not (number2.isdigit()):
     number2 = input("He dicho número: ")
     if (number2.isdigit()):
        float(number2)
        continue
       
  i = 0

  while (i< number2):
     i+=1
     number3 = number1*i
     print(str(number1)+" * "+str(i)+" = "+str(number3))
     if (number3%2==0):
        print("   Es un número par!")
     else:
           print("   Es un número impar!")
  sleep(0.6)

  answer = input("Desea continuar? o prefiere salir? ")
  if answer=="continuar":
     seguir = "true"
     continue
  else:
     seguir = "false"
     sys.exit("Que tenga un buen día.")
 

Este es el código entero.
Código (python) [Seleccionar]
number1 = input(" Di el numero a multiplicar: ")
  while not (number1.isdigit()):
     number1 = input("He dicho número: ")
     if (number1.isdigit()):
        float(number1)
        continue

En esta parte, si pongo una letra, pasa a la de abajo, y en la de abajo si pongo el número bien, ese numero se guarda en str, y eso hace que luego no puedo hacer i<number2 ni cosas parecidas. He buscado pero ninguna solución. ¿Cómo podría convertirlo?

Editado: No se lo que he dicho arriba, me estoy liando yo solo*

tincopasan

bueno, partamos de la base que este código:
Código (python) [Seleccionar]

while not (number1.isdigit()):
        number1 = input("He dicho número: ")
        if (number1.isdigit()):
            float(number1)
            continue

tiene cosas de más (al vicio y es una repetición) y te falta la asignación del float, lo haría así:
Código (python) [Seleccionar]

   number1 = input(" Di el numero a multiplicar: ")
    while not (number1.isdigit()):
        number1 = input("He dicho número: ")
    number1=float(number1)
    number2 = input(" Di cuantas veces quieres multiplicarlo: ")

etc...
o sea el if y el continue sobran y digo que tipo es el número
además en la pregunta final si solo das Enter sin respuesta o cualquier otra cosa, se  termina el programa, deberías revisar que solo acepte una de las dos respuestas.