Autor
|
Tema: [Python] Pasar de str a int? (Leído 5,909 veces)
|
M401
Desconectado
Mensajes: 119
:$
|
Hola gente! Pasa que estaba haciendo mis pruebas en python y me encuentro con que no puedo usar un input para sumar mis variables :/ def sumar(*args): resultado=0 for resultado_ in args: resultado += resultado_ print(resultado) return a = input("Ingresa 2 numeros a sumar (Separados con un espacio) : ") sumar(a) Hay alguna manera de separar y pasar estos str a int para sumarlos? agradecería vuestra ayuda
|
|
|
En línea
|
Pero aunque los que sepan me digan que no, yo sé muy bien que existe el lado oscuro del sol. – El lado soleado de la calle
|
|
|
EdePC
|
Tengo entendido que el *args sirve para expandir los parámetros a listas, pero hay que pasarle los parámetros como tales, no un simple texto. La otra opción es hacer que la función acepte la expansión y se le tiene que pasar una lista expandida: def sumar(*args): resultado = 0 for resultado_ in args: resultado += int(resultado_) print(resultado) return a = input("Ingresa 2 numeros a sumar (Separados con un espacio) : ") sumar( *a.split() )
Y la última opción es considerar de que las funciones en python pueden recibir una Lista como parámetros, entonces pasarle la Lista de una: def sumar(args): resultado = 0 for resultado_ in args: resultado += int(resultado_) print(resultado) return a = input("Ingresa 2 numeros a sumar (Separados con un espacio) : ") sumar( a.split() )
La documentación de Python no es de las mejores, es bueno tenerlo para consulta de referencia del lenguaje o cosas muy puntuales. Para ejemplos y esas cosas es mejor acudir a Internet o a un Notas/Tutoriales, por ejemplo a mi me gusta esta (inglés): https://goalkicker.com/PythonBook/PythonNotesForProfessionals.pdf
|
|
|
En línea
|
|
|
|
tincopasan
Desconectado
Mensajes: 1.286
No es lo mismo conocer el camino que recorrerlo.
|
Tengo entendido que el *args sirve para expandir los parámetros a listas, en realidad es que recibe los argumentos en forma de una lista o una tupla en todo caso, o sea: sumar((1,2,3,4)) #una tupla sumar([5,6]) # una lista
es lo mismo en cuanto a la funcionalidad. con respecto a tu código, se puede resumir a: def sumar(*args): #*args usa listas o tuplas return sum(*args) # python ya trae funciones predefinidas a = [int(x) for x in input("Ingresa los números a sumar (Separados con un espacio) : ").split()] #¿para qué usar *args si solo serán dos números? # es necesario pasar cadena a entero print(sumar(a))
Edito: por las dudas, el método int() intenta pasar de cadena a entero a = int(input("número "))
si ingreso 10 input lo devuelve como cadena, pero al estar dentro del int, devolverá un entero el problema es que es quisquilloso con la entrada en tu caso no se puede ingresar espacios, lo ideal es ingresar de a un número, pero entonces deberías usar un condicional si es que no sabés cuantos enteros ingresará el usuario, por eso en tu caso simplemente tomamos una lista de caracterés, sacamos los espacios y a la lista de cadenas la pasamos a lista de enteros.
|
|
« Última modificación: 18 Enero 2021, 02:29 am por tincopasan »
|
En línea
|
|
|
|
Panic0
Desconectado
Mensajes: 218
|
Hola gente! Pasa que estaba haciendo mis pruebas en python y me encuentro con que no puedo usar un input para sumar mis variables :/ def sumar(*args): resultado=0 for resultado_ in args: resultado += resultado_ print(resultado) return a = input("Ingresa 2 numeros a sumar (Separados con un espacio) : ") sumar(a) Hay alguna manera de separar y pasar estos str a int para sumarlos? agradecería vuestra ayuda Estaba por dar una solución pero me ganaron jajaja Tengo dos preguntas. 1: Para que sirve el *args y args osea,tengo entendido que cuándo se pone *args es para pasar una cantidad buena de parámetros,pero y el otro?? El args cambia en algo? 2: veo que la variable llamada "resultado_" le agregaste el guión,si mal me equivoco el guión (_) es para cuándo la variable no se vuelve a usar dentro del for,pero por lo que veo esto cambia cuándo lo agregaste a la variable. Mas allá de eso,muy lindo tu código.
|
|
|
En línea
|
Los ataques de pánico suelen comenzar de forma súbita, sin advertencia.
|
|
|
tincopasan
Desconectado
Mensajes: 1.286
No es lo mismo conocer el camino que recorrerlo.
|
Para que sirve el *args y args osea,tengo entendido que cuándo se pone *args es para pasar una cantidad buena de parámetros,pero y el otro?? El args cambia en algo? tratá de leer todas las respuestas, *args se utiliza para pasar una cantidad desconocida de argumentos en una lista o una tupla, puede ser uno o "una buena cantidad" args sin * es solo el nombre del argumento, podría ser pepito y es lo mismo "resultado_" le agregaste el guión,si mal me equivoco el guión (_) es para cuándo la variable no se vuelve a usar dentro del for, me gustaría saber en que manual leiste eso, en este caso como en muchos otros, cuando se usa al final de la variable, es solo para cambiar la referencia al objeto, en este caso resultado es un objeto referencia a enteros y resultado_ es otro objeto que hace referencia a cadenas que es lo que contiene la lista a
|
|
|
En línea
|
|
|
|
Panic0
Desconectado
Mensajes: 218
|
tratá de leer todas las respuestas, *args se utiliza para pasar una cantidad desconocida de argumentos en una lista o una tupla, puede ser uno o "una buena cantidad"
args sin * es solo el nombre del argumento, podría ser pepito y es lo mismo
me gustaría saber en que manual leiste eso, en este caso como en muchos otros, cuando se usa al final de la variable, es solo para cambiar la referencia al objeto, en este caso resultado es un objeto referencia a enteros y resultado_ es otro objeto que hace referencia a cadenas que es lo que contiene la lista a
Hola,muchas gracias por explicarme En cuanto a esto me gustaría saber en que manual leiste eso Lo llegué a ver que en muchos lugares dicen eso básicamente,en este caso prefiero tomar tu palabra ya que le tengo mas confianza a un experto (vos) que a otro tipo de persona. Ah perdón por mi ignorancia,tocará seguir estudiando jajaja Y lo del guión lo saque de aquí https://www.mclibre.org/consultar/python/lecciones/python-for.html
|
|
« Última modificación: 18 Enero 2021, 04:43 am por Panic0 »
|
En línea
|
Los ataques de pánico suelen comenzar de forma súbita, sin advertencia.
|
|
|
tincopasan
Desconectado
Mensajes: 1.286
No es lo mismo conocer el camino que recorrerlo.
|
viendo el link y la explicación: print("Comienzo") for _ in [0, 1, 2]: print("Hola ", end="") print() print("Final")
si te fijas usa el _ solo para no poner un nombre específico a la variable y aque no la usa, pero si quisiera también podría hacerlo, no deja de ser una referencia: print("Comienzo") for _ in [0, 1, 2]: print(_, end="") print() print("Final") y no es que no se pueda o deba usar, es una convención para ecribir menos en este caso
|
|
|
En línea
|
|
|
|
Danielㅤ
Desconectado
Mensajes: 1.841
🔵🔵🔵🔵🔵🔵🔵
|
Hola, para sumar números en string podes usar la función eval(): numPrimero = "15" numSegundo = "28" print(eval(numPrimero + numSegundo)) 43
Saludos
|
|
« Última modificación: 18 Enero 2021, 08:13 am por [D]aniel »
|
En línea
|
|
|
|
M401
Desconectado
Mensajes: 119
:$
|
Hola! Muchas gracias por vuestras respuestas. Ya pude resolver mi problema con el código: def sumar(*args): resultado = 0 for resultado_ in args: resultado += int(resultado_) print(resultado) return a = input("Ingresa los numeros a sumar (Separados con un espacio) : ") sumar( *a.split() ) Este código me pareció más fácil de entender para mi (Ya que no llevo mucho en python). En cuanto a lo de *args, la idea es meter varios números y que se sumen/resten/multipliquen/dividan/etc entre sí. El Guión bajo siempre lo uso de esa manera (Para crear variables temporales), Ya que me parece más cómodo que crear variables con otro nombre o ponerle un número (Usaría contador_ , en lugar de contador2. Me parece más cómodo.). Aunque en python se crean variables temporales (Como en las fuciones o en el for) yo sigo usando los "_" porque así programo yo xd Para que sirve el *args y args osea,tengo entendido que cuándo se pone *args es para pasar una cantidad buena de parámetros,pero y el otro?? El args cambia en algo? No se si a ti te pasa lo mismo, Pero: Si funciona: def sumar(*args): resultado = 0 for resultado_ in args: Error de Sintaxis: def sumar(*args): resultado = 0 for resultado_ in *args: Error de Sintaxis2: def sumar(args): resultado = 0 for resultado_ in args: Yo por lo que he visto, El * en ARGS Solo se usa en " def sumar(*args)" para decirle a python que vamos a usar el ARGS y no una variable temporal llamada ARGS (es decir, Usar el *ARGS y no un solo argumento llamado ARGS). Ya luego de el " def sumar(*args)" no es necesario usar el " *". (Supongo yo eh , Recuerda que soy un newbie en python, a pesar del tiempo que llevo aprendiendo a usarlo)
|
|
« Última modificación: 18 Enero 2021, 19:01 pm por Mudereded401 »
|
En línea
|
Pero aunque los que sepan me digan que no, yo sé muy bien que existe el lado oscuro del sol. – El lado soleado de la calle
|
|
|
KonohaHokage
Desconectado
Mensajes: 1
|
a="enter a number of your choice." b="enter another number of your choice." c,d=int(a,b) print("numbers are:-") print c,d refer to any queries on python tutorial
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Python] Pasar de decimal a Octal.
Scripting
|
Meta
|
9
|
13,935
|
3 Noviembre 2010, 11:54 am
por Meta
|
|
|
[Python] Pasar de negativo a positivo
Scripting
|
Meta
|
4
|
15,085
|
1 Diciembre 2010, 23:58 pm
por ChicoMaravilla
|
|
|
Pasar Un codigo de C++ a Python
Programación General
|
P1R0
|
1
|
13,813
|
13 Diciembre 2012, 03:12 am
por P1R0
|
|
|
[duda] Python al pasar a c++
Scripting
|
colcrt
|
1
|
2,049
|
23 Septiembre 2015, 23:36 pm
por engel lex
|
|
|
AYUDA!!! PASAR UN CODIGO C A PYTHON
Scripting
|
kujaku
|
4
|
3,627
|
11 Julio 2019, 22:26 pm
por tincopasan
|
|