es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo hacer que mi lista lea ciertos valores?

Soy un traductor de español que traduce documentos de TI. Traduzca lo siguiente al español. No traduzca el código ni la salida en markdown

Soy un principiante en python. Tengo un código que lee un archivo de texto desde mi computadora y convierte todo el texto a entero. Estoy luchando con las últimas líneas en la función de análisis de puntuaciones de golf.

Necesito decirle al código que para una puntuación menor de 280 tome estos valores y obtenga la cantidad, que sé que debe usar Len(score) pero estoy equivocado al obtener los valores en primer lugar. Debería imprimir el número de puntajes por debajo de 180, ¡pero sigo obteniendo errores y estoy tan perdido! ¡Cualquier ayuda es apreciada en absoluto! ¡¡¡Muchas gracias!!!

¡Mi error está en las últimas seis líneas de código! ¡No sé cómo hacer que lea los valores por debajo de 280 en la lista 🙁

El error es:

TypeError: ”<‘ no admitido entre instancias de ‘& # 39; str & # 39; y ‘& # 39; int & # 39; ##

en la línea:

‘ if score & lt; 280:’

def open_and_read_golf_scores():
raw_scores = open(“golfscores.txt”, “r”)
scores = []

for current_line in raw_scores:
    values = current_line.split(",")
    scores.append(values[2])

raw_scores.close()

return scores

def analyze_golf_scores():

scores = open_and_read_golf_scores()
total = 0
for score in scores:
    score = score[0:3]
    total = total +int(score)

ave = total/len(score)

print(“Average score =”, ave)

for score in scores:
if score < 280:
scores.append(values)
below_par = total + len(score)
print(“The number of scores below par is “, below_par)

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    En primer lugar, el mensaje de error indica que estás tratando de comparar una cadena y un entero, lo cual no es permitido en Python. Esto significa que necesitas convertir la variable score de una cadena a un entero antes de hacer la comparación.

    En segundo lugar, debes inicializar la variable below_par antes del loop donde cuentas el número de puntuaciones por debajo de 280. Puedes hacer esto estableciéndola en cero antes del loop. Dentro del loop, debes incrementar below_par en uno cada vez que una puntuación está por debajo de 280.

    Por último, no debes agregar nada a la lista scores dentro del loop, ya que esta lista está destinada a almacenar las puntuaciones originales del archivo, y no tiene nada que ver con la cuenta de puntuaciones por debajo de 280.

    Aquí está el código modificado:

    def open_and_read_golf_scores():
        raw_scores = open("golfscores.txt", "r")
        scores = []
    
        for current_line in raw_scores:
            values = current_line.split(",")
            scores.append(values[2])
    
        raw_scores.close()
    
        return scores
    
    def analyze_golf_scores():
    
        scores = open_and_read_golf_scores()
        total = 0
        below_par = 0
    
        for score in scores:
            score = score[0:3]
            total = total + int(score)
            if int(score) < 280:
                below_par = below_par + 1
    
        ave = total / len(scores)
    
        print("Puntuación media =", ave)
        print("El número de puntuaciones por debajo del par es", below_par)
    

    Con estas modificaciones, el código debería contar correctamente el número de puntuaciones por debajo de 280 y mostrarlo en la pantalla.

Comments are closed.