Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Geormarsch en 28 Mayo 2017, 21:16 pm



Título: Python - Error en entrada
Publicado por: Geormarsch en 28 Mayo 2017, 21:16 pm
Tengo un error en cantidad_platos

Cuando saco contadorm del input si funciona...
a que se debe esto?

Código
  1. contadorm = 1
  2. contadorp = 1
  3. pagar = []
  4. cantidad_mesas = int(input("Mesas: "))
  5.  
  6. for a in range(cantidad_mesas):
  7.    contadorm = contadorm + 1
  8.    cantidad_platos = int(input("Cantidad de platos en la mesa",  contadorm))
  9.  
  10.    for b in range(cantidad_platos):
  11.        contadorp = contadorp + 1
  12.        valor_plato = int(input("Valor del plato en la mesa", contadorm)


Título: Re: Python - Error en entrada
Publicado por: tincopasan en 28 Mayo 2017, 21:48 pm
mi pregunta es:
Código
  1. cantidad_platos = int(input("Cantidad de platos en la mesa",  contadorm))

¿qué se supone que hace ahí la vartiable?

input es para que el usuario pueda ingresar datos a través del teclado


Título: Re: Python - Error en entrada
Publicado por: Poyoncio en 28 Mayo 2017, 22:14 pm
http://www.mclibre.org/consultar/python/lecciones/python_entrada_teclado.html


Título: Re: Python - Error en entrada
Publicado por: Geormarsch en 28 Mayo 2017, 23:22 pm
mi pregunta es:
Código
  1. cantidad_platos = int(input("Cantidad de platos en la mesa",  contadorm))

¿qué se supone que hace ahí la vartiable?

input es para que el usuario pueda ingresar datos a través del teclado

La verdad es que era un contador, para mostrar en que mesa van... pero luego de eso, se sumaría la cantidad total, intenté poner la variable del for que en éste caso es "a"
Código
  1. cantidad_platos = int(input("Cantidad de platos en la mesa",  a))

Pero no funciona tampoco...


Título: Re: Python - Error en entrada
Publicado por: Geormarsch en 28 Mayo 2017, 23:35 pm
Código
  1. #-*- coding: utf-8 -*-
  2.  
  3. precio = []
  4.  
  5. cantidad_mesas = int(input("Número de mesas: "))
  6.  
  7. for i in range(cantidad_mesas):
  8.    cantidad_platos = int(input("Cantidad de platos en la mesa número: "))
  9.    for x in range(cantidad_platos):
  10.        valor_plato = int(input("Valor de plato de la mesa número: "))
  11.        precio.append(valor_plato)
  12.  
  13. print (precio)    
  14.  

Hasta el momento lo que hace es solicitar número de mesas, luego preguntar cuantos platos se servirán en cada mesa, luego agregarlos a la lista.

Pero en el primer for, luego de mostrar en pantalla "Cantidad de platos en la mesa número", quisiera que se mostrase 1, luego cuando se complete ese ciclo y vuelva a repetirlo se actualice a la número 2 y así sucesivamente dependiendo de cuantas mesas están actualmente...


Título: Re: Python - Error en entrada
Publicado por: tincopasan en 29 Mayo 2017, 00:33 am
no se si entendí bien lo que querés hacer, pero me parece que esto te puede servir:
Código
  1. #-*- coding: utf-8 -*-
  2. precio = []
  3. cantidad_mesas = int(input("Número de mesas: "))
  4. for i in range(1,cantidad_mesas + 1):
  5.    print("¿Cantidad de platos en la mesa número {}?: ".format(i),end="")
  6.    cantidad_platos = int(input())
  7.    for x in range(1,cantidad_platos +1):
  8.        print("¿Valor de plato {} de la mesa número {}?: ".format(x,i),end="")
  9.        valor_plato = int(input())
  10.        precio.append(valor_plato)
  11. print (precio)  
  12.  
Sino es eso, perdón, sigo sin entender el planteo!


Título: Re: Python - Error en entrada
Publicado por: Geormarsch en 29 Mayo 2017, 00:55 am
Es exactamente lo que intentaba hacer, lo que no entiendo es eso del .format(i), end=""
Muchísimas gracias, te pasaste, pero en programación no hemos visto eso que mencioné anteriormente, por qué no funciona con "cantidad de platos en la mesa número", i???


Título: Re: Python - Error en entrada
Publicado por: tincopasan en 1 Junio 2017, 07:20 am
perdón por la demora, me olvidé que iba a contestar.
1)como te dije antes la función input() no soporta mostar variables, ya que no fue hecha para eso.
2)format es una propiedad de las cadenas que permite poner variables
3)end="" es para evitar el salto de línea del print
4)no seas vago, todas estas definiciones abundan en lared!!!
5)podés hacer tus propias funciones, así que en este caso te muestro la función entrada(), que es como lo que buscas hacer, mostrar una cadena,más el input, la hice para que veas la potencia de python-
Código
  1. #-*- coding: utf-8 -*-
  2. def entrada(cadena=""):
  3.    print(cadena,end="")
  4.    return input()
  5.  
  6. contadorm = 1
  7. cantidad_mesas = int(input("Mesas: "))
  8.  
  9. precio=[]
  10. for a in range(cantidad_mesas):
  11.    cantidad_platos = int(entrada("Cantidad de platos en la mesa {} ".format(contadorm)))
  12.    contadorp = 1    
  13.    for b in range(cantidad_platos):
  14.        valor_plato = int(entrada("Valor del plato {} en la mesa {} ".format(contadorp,contadorm)))
  15.        contadorp = contadorp + 1
  16.        precio.append(valor_plato)
  17.    contadorm = contadorm + 1
  18. print(precio)
  19.  

es básicamente tu código, con alguna modificación porque está mal la lógica y además la implementación de mi función que reemplaza a input() que es entrada().
Espero lo entiendas fácil, ya que soy un perro explicando.

Saludos.