elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Pedir equipos y puntuaciones, guardarlos y mostrar el resultado (Python)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Pedir equipos y puntuaciones, guardarlos y mostrar el resultado (Python)  (Leído 3,276 veces)
ThePaquet1

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Pedir equipos y puntuaciones, guardarlos y mostrar el resultado (Python)
« en: 30 Enero 2021, 22:54 pm »

Hola, he intentado hacer un programa que funciona así:
Pido partidos de una liga de pádel en este formato:
Código:
{NombreEquipoA} {SetsGanadosEquipoA} {NombreEquipoB} {SetsGanadosEquipoB}
Todo eso se escribe en la misma línea, pero cada partido se escribe en una línea diferente. En cada partido, el equipo con más sets gana. Cada vez que un equipo gana un partido, suman 3 puntos, y si pierde, 0.
Tengo que guardar de alguna forma los nombres de todos los equipos que escriba porque un equipo puede aparecer en diferentes partidos, además como un equipo puede aparecer varias veces también tengo que guardar e ir actualizando su puntuación (si han ganado 1 partido, tendrá 3 puntos, pero si luego gana otro partido, aumentará a 6 puntos).
Ojo, tengo que introducir todo el rato partidos hasta que introduzca la palabra FIN, y en ese momento mostrará los resultados con el ganador (que será el equipo con más puntos), y luego mostrará un ranking de puntuaciones de los equipos.

Ya que es algo lioso, os pongo un ejemplo: voy a introducir 3 partidos y luego la palabra FIN, y entonces mostrará los resultados:

Buenardos 1 Malardos 4    //Como el equipo "Malardos" tiene más sets, gana el partido y obtiene 3 puntos.

Picasos 2 Redbull 3    //Gana el equipo "Redbull", por lo que obtiene 3 puntos

Malardos 4 Camisetas 3    //Vuelve a ganar el equipo Malardos, por lo que ahora tienen 6 puntos

FIN //Al introducir esto, el programa deja de pedirme partidos y muestra los resultados

Equipo ganador: "Malardos"
Resultados de la liga:
Malardos - 6 puntos
Redbull - 3 puntos
Buenardos - 0 puntos //El ranking es de 3, o sea que no es necesario poner todos los equipos con 0 puntos

Y básicamente ese sería el programa, poner varios partidos hasta poner FIN, los equipos ganan puntos al ganar partidos, y luego mostrar el resultado con un ranking de 3 equipos como máximo.

Esto es lo que tengo de código:
Código:
while equipo1 != FIN:
    equipo1, puntos1, equipo2, puntos2 = input().split()
    if puntos1 > puntos2
        puntuacionequipo1 = 3
    else:
        puntuacionequipo2 = 3
else:
    print("Equipo ganador:")
    print("Resultados de la liga:")

Básicamente lo que tengo es muy poco, porque por más que busco en Google (tanto en inglés como en español), no comprendo como funciona el while en Python para que me pida constantemente equipos hasta poner FIN, y tampoco sé como poder guardar los nombres de los equipos ni sumarles puntos cuando ganan un partido para luego poder hacer un ranking. Y bueno, en la parte donde imprimo los resultados tampoco he escrito ningún equipo porque para empezar no sé cómo seleccionar al equipo ganador si no sé como añadirles puntos cuando ganan partidos.

Sé que estoy pidiendo mucha ayuda, pero llevo desde el jueves buscando e informándome sobre Python y no consigo realizar este programa, a si que si alguien pudiera ayudarme estaría increíblemente agradecido.


En línea

crazykenny


Desconectado Desconectado

Mensajes: 4.226



Ver Perfil WWW
Re: Pedir equipos y puntuaciones, guardarlos y mostrar el resultado (Python)
« Respuesta #1 en: 30 Enero 2021, 23:12 pm »

Hola, he intentado hacer un programa que funciona así:
Pido partidos de una liga de pádel en este formato:
Código:
{NombreEquipoA} {SetsGanadosEquipoA} {NombreEquipoB} {SetsGanadosEquipoB}
Todo eso se escribe en la misma línea, pero cada partido se escribe en una línea diferente. En cada partido, el equipo con más sets gana. Cada vez que un equipo gana un partido, suman 3 puntos, y si pierde, 0.
Tengo que guardar de alguna forma los nombres de todos los equipos que escriba porque un equipo puede aparecer en diferentes partidos, además como un equipo puede aparecer varias veces también tengo que guardar e ir actualizando su puntuación (si han ganado 1 partido, tendrá 3 puntos, pero si luego gana otro partido, aumentará a 6 puntos).
Ojo, tengo que introducir todo el rato partidos hasta que introduzca la palabra FIN, y en ese momento mostrará los resultados con el ganador (que será el equipo con más puntos), y luego mostrará un ranking de puntuaciones de los equipos.

Ya que es algo lioso, os pongo un ejemplo: voy a introducir 3 partidos y luego la palabra FIN, y entonces mostrará los resultados:

Buenardos 1 Malardos 4    //Como el equipo "Malardos" tiene más sets, gana el partido y obtiene 3 puntos.

Picasos 2 Redbull 3    //Gana el equipo "Redbull", por lo que obtiene 3 puntos

Malardos 4 Camisetas 3    //Vuelve a ganar el equipo Malardos, por lo que ahora tienen 6 puntos

FIN //Al introducir esto, el programa deja de pedirme partidos y muestra los resultados

Equipo ganador: "Malardos"
Resultados de la liga:
Malardos - 6 puntos
Redbull - 3 puntos
Buenardos - 0 puntos //El ranking es de 3, o sea que no es necesario poner todos los equipos con 0 puntos

Y básicamente ese sería el programa, poner varios partidos hasta poner FIN, los equipos ganan puntos al ganar partidos, y luego mostrar el resultado con un ranking de 3 equipos como máximo.

Esto es lo que tengo de código:
Código:
while equipo1 != FIN:
    equipo1, puntos1, equipo2, puntos2 = input().split()
    if puntos1 > puntos2
        puntuacionequipo1 = 3
    else:
        puntuacionequipo2 = 3
else:
    print("Equipo ganador:")
    print("Resultados de la liga:")

Básicamente lo que tengo es muy poco, porque por más que busco en Google (tanto en inglés como en español), no comprendo como funciona el while en Python para que me pida constantemente equipos hasta poner FIN, y tampoco sé como poder guardar los nombres de los equipos ni sumarles puntos cuando ganan un partido para luego poder hacer un ranking. Y bueno, en la parte donde imprimo los resultados tampoco he escrito ningún equipo porque para empezar no sé cómo seleccionar al equipo ganador si no sé como añadirles puntos cuando ganan partidos.

Sé que estoy pidiendo mucha ayuda, pero llevo desde el jueves buscando e informándome sobre Python y no consigo realizar este programa, a si que si alguien pudiera ayudarme estaría increíblemente agradecido.


Hola, ThePaquet1.

Hace tiempo hice un programa similar en Blitz3D (un compilador basado en Basic) para sacar estadísticas de los partidos, y, bueno, lo que hice fue guardar los resultados de los partidos en una matriz de dos dimensiones para luego poder realizar tareas como la que comentas.

Como nota adicional:

Sobre la "segunda" dimensión de esta debería tener 4 valores; un valor para cada equipo y los otros dos para la puntuación de cada equipo.
Sobre la primera dimensión de matriz; El valor que debe tener es igual al numero de partidos disputados.


Por ultimo, el resto seria utilizar el comando input para añadir los nombres de los equipos y sus resultados.

Espero poder ser de ayuda con la duda que has expuesto en este tema, o, almenos, en el sentido de aportar una idea a la hora de realizar el código.

Muchas gracias por vuestra atención, y, bueno, saludos.


« Última modificación: 30 Enero 2021, 23:14 pm por crazykenny » En línea

A nivel personal, lo que me da mas miedo no son los planteamientos y acciones individuales, sino las realizadas en grupo, ya que estas ultimas pueden acabar con consecuencias especialmente nefastas para todos.
Se responsable, consecuente y da ejemplo.
https://informaticayotrostemas.blogspot.com/

Mi canal de Youtube:

https://www.youtube.com/@crazykenny
tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: Pedir equipos y puntuaciones, guardarlos y mostrar el resultado (Python)
« Respuesta #2 en: 31 Enero 2021, 00:56 am »

ni loco te hago todo el código, si puedo ayudarte y seguro muchos otros, pero tenés que hacer aunque sea de a poco lo que esperas. Suena feo, pero no debes ser muy bueno buscando sino encuentras lo que pides, hay cientos de tutoriales y manuales de python.
Vamos con lo de "fin" y while:

Código
  1. equipo1 = ""  #debe estar declarado antes del while
  2. while equipo1 != "FIN": #fin es una cadena debe ir entre comillas dobles o simples como tal
  3.    equipo1 = input(">")
  4.    #todas las líneas que siguen tienen algo mal en general
  5.    """equipo1, puntos1, equipo2, puntos2 = input(">>").split() #esto dará error si solo ingresa FIN
  6.    if puntos1 > puntos2
  7.        puntuacionequipo1 = 3
  8.    else:
  9.        puntuacionequipo2 = 3
  10. else:
  11.    print("Equipo ganador:")
  12.    print("Resultados de la liga:")"""
  13.  

en fin, de apoco si intentas te ayudaran, sino espera que alguien que este muy aburrido te haga todo el código, que tampoco es tan díficil.
« Última modificación: 31 Enero 2021, 00:58 am por tincopasan » En línea

ThePaquet1

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Pedir equipos y puntuaciones, guardarlos y mostrar el resultado (Python)
« Respuesta #3 en: 31 Enero 2021, 12:44 pm »


Hola, ThePaquet1.

Hace tiempo hice un programa similar en Blitz3D (un compilador basado en Basic) para sacar estadísticas de los partidos, y, bueno, lo que hice fue guardar los resultados de los partidos en una matriz de dos dimensiones para luego poder realizar tareas como la que comentas.

Como nota adicional:

Sobre la "segunda" dimensión de esta debería tener 4 valores; un valor para cada equipo y los otros dos para la puntuación de cada equipo.
Sobre la primera dimensión de matriz; El valor que debe tener es igual al numero de partidos disputados.


Por ultimo, el resto seria utilizar el comando input para añadir los nombres de los equipos y sus resultados.

Espero poder ser de ayuda con la duda que has expuesto en este tema, o, almenos, en el sentido de aportar una idea a la hora de realizar el código.

Muchas gracias por vuestra atención, y, bueno, saludos.
Hola, ¡muchísimas gracias por tu respuesta!
He intentado buscar en Google cómo crear una matriz bidimensional y no sólo no he encontrado como crear una añadiendo nombres (sólo he encontrado creándolas con números), sino que tampoco he encontrado cómo crearla vacía e ir llenándola a medida que escribo equipos y estos ganan puntos. Al menos he entendido que eso es lo que quieres que haga para poder guardar los equipos y sus puntos.

ni loco te hago todo el código, si puedo ayudarte y seguro muchos otros, pero tenés que hacer aunque sea de a poco lo que esperas. Suena feo, pero no debes ser muy bueno buscando sino encuentras lo que pides, hay cientos de tutoriales y manuales de python.
Vamos con lo de "fin" y while:

Código
  1. equipo1 = ""  #debe estar declarado antes del while
  2. while equipo1 != "FIN": #fin es una cadena debe ir entre comillas dobles o simples como tal
  3.    equipo1 = input(">")
  4.    #todas las líneas que siguen tienen algo mal en general
  5.    """equipo1, puntos1, equipo2, puntos2 = input(">>").split() #esto dará error si solo ingresa FIN
  6.    if puntos1 > puntos2
  7.        puntuacionequipo1 = 3
  8.    else:
  9.        puntuacionequipo2 = 3
  10. else:
  11.    print("Equipo ganador:")
  12.    print("Resultados de la liga:")"""
  13.  

en fin, de apoco si intentas te ayudaran, sino espera que alguien que este muy aburrido te haga todo el código, que tampoco es tan díficil.
¡Muchísimas gracias a ti también por tu respuesta!
Gracias a ese código ya he entendido como poder usar correctamente el while para que cuando ponga FIN pare de pedirme partidos, pero ahora tengo otra duda. Yo he aprendido a poner diferentes variables en la misma frase mediante este código:
Código:
equipo1, sets1, equipo2, sets2= input().split()
La cosa es que con el código que me has enseñado no sé cómo meterlo, ya que tú en el input sólo pones el equipo1, y yo necesito meter en la misma fila los dos equipos con sus respectivos sets y luego sacar de ahí un ganador del partido para sumarle los tres puntos. Si intento agregar en tu input los dos equipos y los sets de cada uno pero luego sólo pongo FIN, me aparece el error "ValueError: not enough values to unpack (expected 4, got 1)", que es el error que me has dicho que iba a aparecer si sólo ponía FIN. ¿Alguna idea?
En línea

crazykenny


Desconectado Desconectado

Mensajes: 4.226



Ver Perfil WWW
Re: Pedir equipos y puntuaciones, guardarlos y mostrar el resultado (Python)
« Respuesta #4 en: 31 Enero 2021, 14:06 pm »

Hola, ¡muchísimas gracias por tu respuesta!
He intentado buscar en Google cómo crear una matriz bidimensional y no sólo no he encontrado como crear una añadiendo nombres (sólo he encontrado creándolas con números), sino que tampoco he encontrado cómo crearla vacía e ir llenándola a medida que escribo equipos y estos ganan puntos. Al menos he entendido que eso es lo que quieres que haga para poder guardar los equipos y sus puntos.
¡Muchísimas gracias a ti también por tu respuesta!
Gracias a ese código ya he entendido como poder usar correctamente el while para que cuando ponga FIN pare de pedirme partidos, pero ahora tengo otra duda. Yo he aprendido a poner diferentes variables en la misma frase mediante este código:
Código:
equipo1, sets1, equipo2, sets2= input().split()
La cosa es que con el código que me has enseñado no sé cómo meterlo, ya que tú en el input sólo pones el equipo1, y yo necesito meter en la misma fila los dos equipos con sus respectivos sets y luego sacar de ahí un ganador del partido para sumarle los tres puntos. Si intento agregar en tu input los dos equipos y los sets de cada uno pero luego sólo pongo FIN, me aparece el error "ValueError: not enough values to unpack (expected 4, got 1)", que es el error que me has dicho que iba a aparecer si sólo ponía FIN. ¿Alguna idea?


Hola, ThePaquet1.

Por mi parte, quisiera añadir dos cosas mas a la idea que he comentado y a modo de "pistas" para realizar tu código;

-La primera, crear una matriz que contenga una lista con los nombres de los equipos.
-La segunda, es que la matriz de los resultados debería almacenar solo numeros y de la siguiente manera; los dos primeros números/valores son las posiciones de los equipos en la lista de equipos, el tercer numero/valor son los puntos que ha conseguido el primer equipo y el ultimo numero/valor los puntos del segundo equipo.

Por ultimo, quisiera añadir un par de enlaces que he encontrado con una búsqueda rápida y que, bueno, creo que te pueden resultar útiles para realizar tu código;


https://www.snakify.org/es/lessons/two_dimensional_lists_arrays/

https://www.hektorprofe.net/curso/introduccion-analisis-datos-python-numpy/arrays-2-dimensiones

Muchas gracias por vuestra atención, y, bueno, saludos.
En línea

A nivel personal, lo que me da mas miedo no son los planteamientos y acciones individuales, sino las realizadas en grupo, ya que estas ultimas pueden acabar con consecuencias especialmente nefastas para todos.
Se responsable, consecuente y da ejemplo.
https://informaticayotrostemas.blogspot.com/

Mi canal de Youtube:

https://www.youtube.com/@crazykenny
tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: Pedir equipos y puntuaciones, guardarlos y mostrar el resultado (Python)
« Respuesta #5 en: 31 Enero 2021, 15:37 pm »

Citar
La cosa es que con el código que me has enseñado no sé cómo meterlo, ya que tú en el input sólo pones el equipo1, y yo necesito meter en la misma fila los dos equipos con sus respectivos sets y luego sacar de ahí un ganador del partido para sumarle los tres puntos. Si intento agregar en tu input los dos equipos y los sets de cada uno pero luego sólo pongo FIN, me aparece el error "ValueError: not enough values to unpack (expected 4, got 1)", que es el error que me has dicho que iba a aparecer si sólo ponía FIN. ¿Alguna idea?


claro, ¿pero que has intentado ya sabiendo que te da error.?

Citar
He intentado buscar en Google cómo crear una matriz bidimensional y no sólo no he encontrado como crear una añadiendo nombres (sólo he encontrado creándolas con números), sino que tampoco he encontrado cómo crearla vacía e ir llenándola a medida que escribo equipos y estos ganan puntos. Al menos he entendido que eso es lo que quieres que haga para poder guardar los equipos y sus puntos.

bueno , poné lo que has encontrado o hecho y vemos como se soluciona

Edito: he visto está misma pregunta en otro foro donde participo, evidentemente el usuario no tiene intenciones de intentar nada, algún moderador debería cerrar el post.
« Última modificación: 31 Enero 2021, 18:34 pm por tincopasan » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
mostrar resultado de tabla en textbox
Programación Visual Basic
oscardiaz 4 8,100 Último mensaje 18 Septiembre 2009, 04:28 am
por oscardiaz
Mostrar resultado de www.images.google.com en PictureBox
.NET (C#, VB.NET, ASP)
enterariel 9 5,058 Último mensaje 5 Agosto 2012, 02:36 am
por Keyen Night
No puedo mostrar los resultado correctos en mi calculadora « 1 2 »
.NET (C#, VB.NET, ASP)
DanielPy 12 7,264 Último mensaje 6 Mayo 2013, 21:20 pm
por engel lex
Mostrar resultado si cumple estas condiciones
Desarrollo Web
Cergath 2 4,410 Último mensaje 11 Noviembre 2013, 08:23 am
por BlackM4ster
Mostrar resultado de un web service JSON
PHP
lucheano 9 5,585 Último mensaje 28 Septiembre 2015, 23:56 pm
por 0roch1
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines