Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

438
Visualizações
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 ciclo? 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 mantenga los "puntos"?

over 4 years ago · Santiago Trujillo
5 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório

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 conceptos fundamentales como el control de flujo y encontrar una solución no debería ser nada difícil.

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda