Como señaló Michael Veksler , necesita un trabajo serio con Cómo depurar.
En este problema, desea que todo sea un número de coma flotante todo el tiempo; no le ayuda la falta de tipo de datos de Python. Por lo tanto, debe tener cuidado con cada interacción, como las divisiones que Quora User abordó.
También hay otros problemas más importantes que abordar. Algunas cosas están MUY CONFUNDIDAS aquí.
- Cómo codificar una espiral de ulam
- ¿Cuáles son algunas de las aplicaciones más elegantes de la teoría de grafos?
- Dado que la programación va a ser cada vez más abstracta, ¿necesitamos estudiar más matemáticas para ser buenos en eso?
- ¿Qué significa definir una variable en matemáticas?
- ¿La criptografía es un arte o una ciencia?
– No ha depurado el código en general. Cuando solicita time_unit = “m”, se dispara porque configura Oneway_distance_minutes, pero debería ser oneway_distance_minutes.
– ¿Por qué le pides al usuario que elija una unidad de tiempo ? ¿Hubo más del problema de lo que compartiste? Porque no es importante en lo que compartiste, llegar a la meta de velocidad promedio. Simplemente elija una unidad de tiempo e inclúyala en su consulta al usuario.
– ¿Qué unidades le estás pidiendo al usuario que ingrese la hora? La sección “segundos” parece convertir minutos en segundos, suponiendo que la entrada sea minutos. Pero la sección “minutos” hace lo mismo, o alternativamente convertiría horas en minutos, por lo que ni siquiera sé qué unidades se ingresan. La sección “horas” convierte minutos en horas. Parece que la entrada siempre debe ser minutos, y la sección “minutos” debería decir
convert_to_minutes = time_before.
Para la cordura del usuario, por favor etiquete sus expectativas. p.ej,
“Ingrese el tiempo de la casa a la escuela (minutos):”
– Sin embargo, dado que la velocidad se fuerza como km / h, ¿por qué no está convirtiendo el tiempo en horas , para poder calcular la distancia en km? Su total_distance_seconds, por ejemplo, multiplica el tiempo (en minutos o segundos, no sé) multiplicado por la velocidad en km / h, y obtiene, no km, sino una respuesta incorrecta.
Estás bastante confundido acerca de las unidades: te sugiero que etiquetes las unidades (en nombres de variables y / o comentarios) para que te obligues a hacer que las unidades coincidan correctamente.
distance_km = speed_kmph * time_hrs
– ¿Por qué estás convirtiendo repetidamente todo en enteros ? velocidades, tiempos, etc. Este es un problema clásico de números reales (coma flotante). las entradas solo difuminan la respuesta y luego causan problemas de división. Y luego, después de trabajar tan duro para convertir todo en números enteros, ¿por qué imprime un flotador? En general, imprimir un int como flotante solo oculta al usuario el hecho de que ya no sabe cuáles son los dígitos decimales.
– Tienes variables como “oneway_ distance_hours “. Es esta distancia? ¿O es este tiempo (horas)? Incluso el nombre de la variable está confundido: elija oneway_distance_km o oneway_time_hours.
– Calcula la distancia total, pero no debe completarse, porque el problema le pide que calcule la velocidad promedio. ¿Sabes cómo vas a calcular la velocidad promedio?
– ¿Por qué le preguntas al usuario si quiere hacer el cálculo? Presumiblemente, solo ejecutarían el programa si quisieran hacer el cálculo …
– Los comentarios son geniales. Pero evite los comentarios que dicen exactamente lo mismo que el código: pierden el tiempo del lector. p.ej
# pregunte por la velocidad de la casa a la escuela …
sb = input (“¿Cuál fue la velocidad de la casa a la escuela?”)
– Finalmente, tenga en cuenta: la velocidad promedio es independiente de la distancia o del tiempo que lleva ir de casa a la escuela. Esa entrada puede ser CUALQUIER número, y obtienes la misma respuesta. El problema no necesitaba mencionarlo: es una cortina de humo. Podría haber eliminado por completo todos los cálculos de tiempo y distancia.
1 / avg_speed = 0.5 * ((1 / speed_before) + (1 / speed_after))