Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

467
Vistas
Python: gramática correcta en un bucle

"Estaba haciendo el siguiente ejercicio:

Una gimnasta puede obtener una puntuación de entre 1 y 10 de cada juez.

Imprime una serie de oraciones, "Un juez puede darle _ puntos a una gimnasta". No se preocupe si su primera oración dice "Un juez puede darle 1 punto a una gimnasta". Sin embargo, obtienes 1000 puntos de Internet adicionales si puedes usar un bucle for y tienes la gramática correcta.

Mi código es este:

 scores = (tuple(range(1,11))) for score in scores: print (f'A judge can give a gymnast {score} points.')

Y mi salida, por supuesto, fue:

  • Un juez puede dar 1 punto a una gimnasta.

  • Un juez puede dar 2 puntos a una gimnasta.

  • Un juez puede dar 3 puntos a una gimnasta.

  • Un juez puede dar 4 puntos a una gimnasta.

  • Un juez puede dar 5 puntos a una gimnasta.

  • Un juez puede dar 6 puntos a una gimnasta.

  • Un juez puede dar 7 puntos a una gimnasta.

  • Un juez puede dar 8 puntos a una gimnasta.

  • Un juez puede dar 9 puntos a una gimnasta.

  • Un juez puede dar 10 puntos a una gimnasta.

La pregunta es: ¿Cómo puedo corregir la gramática en mi bucle? Quiero decir, cuando es "1 punto", ¿cómo puedo hacer que mi ciclo diga "1 punto" y no "1 punto" y para los demás puntajes mantener los "puntos"?

over 4 years ago · Santiago Trujillo
5 Respuestas
Responde la pregunta

0

Agrega condicionalmente la s a la cadena:

 print(f'A judge can give a gymnast {score} point{"s" if score > 1 else ""}.')
over 4 years ago · Santiago Trujillo Denunciar

0

Todo lo que necesita es una instrucción if para comprobar la puntuación

 scores = (tuple(range(1,11))) for score in scores: if (score == 1): print (f'A judge can give a gymnast {score} point.') else: print (f'A judge can give a gymnast {score} points.')
over 4 years ago · Santiago Trujillo Denunciar

0

Aquí hay otra forma de hacerlo. La respuesta anterior puede (no sé) ser más eficiente, en mi opinión, esto es más legible para futuros desarrolladores.

 scores = (tuple(range(1,11))) for score in scores: if score == 1: print ('A judge can give a gymnast 1 point.') else: print (f'A judge can give a gymnast {score} points.')
over 4 years ago · Santiago Trujillo Denunciar

0

Concluyo por la simplicidad de este problema que eres bastante nuevo en Python y la programación en general.

Debería echar un vistazo a los conceptos fundamentales como el control de flujo y encontrar una solución no debería ser difícil en absoluto.

https://docs.python.org/3/tutorial/controlflow.html

Pero aún así, para darle una respuesta concreta a la pregunta, simplemente puede agregar una declaración if a su ciclo como esta:

 scores = (tuple(range(1,11))) for score in scores: output = f'A judge can give a gymnast {score} point' if score > 1: output += "s" print(f"{output}.")
over 4 years ago · Santiago Trujillo Denunciar

0

Una forma sencilla sería usar el formato de cadena de python para representar condicionalmente el s

 print(f'A judge can give a gymnast {score} point{"s" if score > 1 else ""}.')
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda