Foros del Web » Programando para Internet » Python »

[SOLUCIONADO] conversion de string a entero

Estas en el tema de conversion de string a entero en el foro de Python en Foros del Web. Buenas tardes amigos. Actualmente estoy comenzando a estudiar Python y e intentado resolver el siguiente ejemplo encontrando algo que me quebro la cabeza #Ejercicio1. creamos ...
  #1 (permalink)  
Antiguo 14/02/2015, 13:28
 
Fecha de Ingreso: diciembre-2012
Ubicación: Lima
Mensajes: 37
Antigüedad: 11 años, 4 meses
Puntos: 0
Pregunta conversion de string a entero

Buenas tardes amigos.

Actualmente estoy comenzando a estudiar Python y e intentado resolver el siguiente ejemplo encontrando algo que me quebro la cabeza

#Ejercicio1. creamos una funcion que imprima el cuadrado de un numero dado.

Código Python:
Ver original
  1. def cuadrado(n):
  2.     r = n**2
  3.     print("El cuadrado de ",n ," es: ",r)
  4.  
  5. cuadrado(10)
  6.  
  7. cuadrado(20)


#Ejercicio2. Solicitar un numero y este elevarlo al cuadrado (usar la funcion anterior)
# -- mi primera solucion fue esta:

Código Python:
Ver original
  1. def cuadrado2():
  2.     i = input("Ingrese un numero: ")
  3.     cuadrado(n)
  4.  
  5. cuadrado2()

pero me arrojo el siguiente error

Ingrese un numero: 10
Traceback (most recent call last):
File "classone.py", line 48, in <module>
cuadrado2()
File "classone.py", line 46, in cuadrado2
cuadrado(i)
File "classone.py", line 33, in cuadrado
r = n**2
TypeError: unsupported operand type(s) for ** or pow(): 'str' and 'int'

Lo cual entendi que era; que al elevar al cuadrado no se estaba entregando una varaible entero por lo cual aparecia el error.

# -- mi segunda solucion fue esta:

Código Python:
Ver original
  1. def cuadrado2():
  2.     i = input("Ingrese un numero: ")
  3.     int(i)
  4.     cuadrado(i)
  5.  
  6. cuadrado2()

Arrojandome el mismo error,

# -- mi tercera solucion fue esta

Código Python:
Ver original
  1. def cuadrado2():
  2.     i = input("Ingrese un numero: ")
  3.     n = int(i)
  4.     cuadrado(n)
  5.  
  6. cuadrado2()
Y aqui si "Wa La" me funciono, mi pregunta principal es porque al parsear directamente la variable "i" a entero en la segunda solucion y despues pasandola como parametro a la funcion "cuadrado" me siguio votando error, porque tuve que utilizar otra variable "n" para almacenar la variable parseada y estada recien mandarla como parametro a la funcion "cuadrado".

Y otra pregunta, existe otra manera de realizar este ejemplito :)
Estoy utilizando Python 3.4.2 por cierta.
Gracias por su respuesta de ante mano.
__________________
**********
I can do it !!!
**********
  #2 (permalink)  
Antiguo 14/02/2015, 14:53
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: conversion de string a entero

Vamos a ver porque fallaste en cada uno:
Código Python:
Ver original
  1. def cuadrado2():
  2.     i = input("Ingrese un numero: ")
  3.     cuadrado(n)
  4. cuadrado2()
Bueno ahí fallara porque n no esta definido en ese scope.

Pero el error dice que hiciste
Código Python:
Ver original
  1. def cuadrado2():
  2.     i = input("Ingrese un numero: ")
  3.     cuadrado(i)
  4. cuadrado2()
Lo cual te marcara error porque i no es un entero.

Por ultimo esta bien:
Código Python:
Ver original
  1. def cuadrado2():
  2.     i = input("Ingrese un numero: ")
  3.     n = int(i)
  4.     cuadrado(n)
  5.  
  6. cuadrado2()

También pudiste haber hecho:
Código Python:
Ver original
  1. def cuadrado2():
  2.     i = int(input("Ingrese un numero: "))
  3.     cuadrado(i)
  4.  
  5. cuadrado2()
  #3 (permalink)  
Antiguo 14/02/2015, 15:28
 
Fecha de Ingreso: diciembre-2012
Ubicación: Lima
Mensajes: 37
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: conversion de string a entero

Gracias por la segunda respuesta razpeitia, pero mi consulta en especial es porque esto no funciona

Código Python:
Ver original
  1. def cuadrado2():
  2.     i = input("Ingrese un numero: ")
  3.     int(i)
  4.     cuadrado(i)
  5.  
  6. cuadrado2()
Cuando lo intento hacer de esta manera no funka, yo creo que deberia funcionar porque despues de recibir el numero lo estoy parceando y ya parceado lo estoy mandando a la funcion "cuadrado".

Respecto al metodo mas corto, si me funko.. !! se logro ahorrar una linea :)
__________________
**********
I can do it !!!
**********
  #4 (permalink)  
Antiguo 14/02/2015, 21:04
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: conversion de string a entero

Código Python:
Ver original
  1. def cuadrado2():
  2.     i = input("Ingrese un numero: ")
  3.     int(i)
  4.     cuadrado(i)
  5.  
  6. cuadrado2()
Es porque, int acepta una cadena como parámetro y regresa un entero como respuesta.
int no te asigna el resultado a la variable que le pasaste

Para que funcione también pudiste hacer
Código Python:
Ver original
  1. i = int(i)
  #5 (permalink)  
Antiguo 14/02/2015, 23:24
 
Fecha de Ingreso: diciembre-2012
Ubicación: Lima
Mensajes: 37
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: conversion de string a entero

OK, razpeitia muchas gracias. Ahora si entendi
__________________
**********
I can do it !!!
**********

Etiquetas: conversion, entero, gui, ip, print, string, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:42.