Autor
|
Tema: alguno me ayuda con un código roto en python? (Leído 7,077 veces)
|
Joe Fraddy
Desconectado
Mensajes: 277
|
Mi código es el siguiente: # Funcion 8x9 def obtener_promedio_clase(alumnos): puntajes=[] alumnos = ['candela', 'milagros', 'ramiro'] for alumno in alumnos: puntajes.append(sacar_promedio(alumno)) return promedio(puntajes) # Leccion 9x9 print obtener_promedio_clase(alumnos) print calificaciones_con_letras(obtener_promedio_clase(alumnos))
El error: ¡Uy! Probá otra vez. Cuando tratamos de usarlo, vimos que esto estaba roto o que faltaba. Lo que quiero hacer es mostrá en pantalla (print) el resultado de llamar a obtener_promedio_clase con tu lista de alumnos list. Tus alumnos deben ser [candela, milagros, ramiro] y Después mostrá en pantalla con print el resultado de calificaciones_con_letras para ver el promedio de la clase.
|
|
« Última modificación: 22 Enero 2015, 09:00 am por Eleкtro »
|
En línea
|
|
|
|
engel lex
|
2 cosas... 1- lo ultimo # Leccion 9x9 print obtener_promedio_clase(alumnos) print calificaciones_con_letras(obtener_promedio_clase(alumnos))
eso está identado... es decir, está dentro de la funcion obtener_promedio_clase 2- y toda la función sacar_promedio(alumno)
donde está? cómo es?
|
|
« Última modificación: 22 Enero 2015, 07:01 am por engel lex »
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
Joe Fraddy
Desconectado
Mensajes: 277
|
2 cosas... 1- lo ultimo # Leccion 9x9 print obtener_promedio_clase(alumnos) print calificaciones_con_letras(obtener_promedio_clase(alumnos))
eso está identado... es decir, está dentro de la funcion obtener_promedio_clase 2- y toda la función sacar_promedio(alumno)
donde está? cómo es? En la segunda cosa que me señalas la estoy sacando de otra función anterior: # Funcion 6x9 def sacar_promedio(alumno): tareas=promedio(alumno['tareas']) pruebas=promedio(alumno['pruebas']) examenes=promedio(alumno['examenes']) return 0.1 * tareas + 0.3 * pruebas + 0.6 * examenes
|
|
|
En línea
|
|
|
|
engel lex
|
ya creo que vi el error... def obtener_promedio_clase(alumnos): puntajes=[] alumnos = ['candela', 'milagros', 'ramiro'] for alumno in alumnos: puntajes.append(sacar_promedio(alumno)) return promedio(puntajes)
alumnos son 3 strings... es decir, 3 palabras... pasas cada nombre como argumento a sacar_promedio def sacar_promedio(alumno): tareas=promedio(alumno['tareas']) pruebas=promedio(alumno['pruebas']) examenes=promedio(alumno['examenes']) return 0.1 * tareas + 0.3 * pruebas + 0.6 * examenes
sacar promedio recibe la palabra y trata de sacar de ella una asociación inexistente... es decir recibe "candela" e intenta hacer "candela"['tareas']
cosa que sabes que no funcionará creo que la implementación debería ser def sacar_promedio(alumno): promedios=promedio(alumno) tareas=promedios['tareas']
no se como es tu funcion promedio, pero si asocia el nombre del alumno, lo conseguirá y lo sacará
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
Joe Fraddy
Desconectado
Mensajes: 277
|
No, en realidad sigue igual, ya le modifique varias cosas pero me sigue dando el mismo error: Código completo: candela = { "nombre": "Candela", "tareas": [90.0, 97.0, 75.0, 92.0], "pruebas": [88.0, 40.0, 94.0], "examenes": [75.0, 90.0] } milagros = { "nombre": "Milagros", "tareas": [100.0, 92.0, 98.0, 100.0], "pruebas": [82.0, 83.0, 91.0], "examenes": [89.0, 97.0] } ramiro = { "nombre": "Ramiro", "tareas": [0.0, 87.0, 75.0, 22.0], "pruebas": [0.0, 75.0, 78.0], "examenes": [100.0, 100.0] } # ¡Agregá tu función acá abajo! def promedio (numeros): total = sum(numeros) total = float(total) resultado = total/len(numeros) return resultado # Funcion 6x9 def sacar_promedio(alumno): tareas=promedio(alumno['tareas']) pruebas=promedio(alumno['pruebas']) examenes=promedio(alumno['examenes']) return 0.1 * tareas + 0.3 * pruebas + 0.6 * examenes # Funcion 7x9 def calificaciones_con_letras(resultado): if resultado >=90: return "A" elif resultado >=80: return 'B' elif resultado >=70: return 'C' elif resultado >=60: return 'D' else: return 'F' print calificaciones_con_letras(sacar_promedio(candela)) # Funcion 8x9 def obtener_promedio_clase(alumnos): puntajes=[] alumnos = ['candela', 'milagros', 'ramiro'] for alumno in alumnos: puntajes.append(sacar_promedio(alumnos)) return promedio(puntajes) # Leccion 9x9 print obtener_promedio_clase(alumnos) print calificaciones_con_letras(obtener_promedio_clase(alumnos))
|
|
« Última modificación: 23 Enero 2015, 03:57 am por engel lex »
|
En línea
|
|
|
|
engel lex
|
está mal por lo que te dije... observa candela = { "nombre": "Candela", "tareas": [90.0, 97.0, 75.0, 92.0], "pruebas": [88.0, 40.0, 94.0], "examenes": [75.0, 90.0] } alumnos = ['candela', 'milagros', 'ramiro'] print(alumnos[0]==candela)
pero ahora al ver el codigo completo, veo que los alumnos están declarados como variables independientes, solo en el array tienes que quitar las comillas de los nombres es decir candela = { "nombre": "Candela", "tareas": [90.0, 97.0, 75.0, 92.0], "pruebas": [88.0, 40.0, 94.0], "examenes": [75.0, 90.0] } alumnos = [candela, milagros, ramiro] print(alumnos[0]==candela)
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
Joe Fraddy
Desconectado
Mensajes: 277
|
Ya lo hice pero me sigue diciendo lo mismo.
podrías modificar mi código de modo que corra???
|
|
|
En línea
|
|
|
|
engel lex
|
te recomiendo un debugger de python, es muy bueno... los debugger pueden ayudarte a resolver el 80% de los problemas http://www.pythontutor.com/visualize.html#mode=edita mi tu codigo hasta donde está funciona bien, ya que retorna B hasta la linea 46 el código corre perfecto... el problema viene a partir de la linea 49 def obtener_promedio_clase(alumnos): puntajes=[] alumnos = ['candela', 'milagros', 'ramiro'] for alumno in alumnos: puntajes.append(sacar_promedio(alumnos))#la variable del loop es alumno, no alumnos return promedio(puntajes)
pero el peor error como te dije está en las ultimas 2 lineas.... al estar identadas (tener espacio a la izquierda) están dentro de obtener_promedio_clase, con quitarle el espacio se corrigen... ahora... el ultimo error... la ultima linea print calificaciones_con_letras(obtener_promedio_clase(alumnos))
calificaciones_con_letras requiere como argumento un alumno... le estás pasando alumnos que en ese ámbito ni si quiera existe
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
Joe Fraddy
Desconectado
Mensajes: 277
|
ya corregi la identación, pero ahora el debug me manda lo siguiente: Traceback (most recent call last): File "python", line 57, in <module> NameError: name 'alumnos' is not defined
|
|
|
En línea
|
|
|
|
engel lex
|
te estás lanzando a preguntar antes de analizar... así que analizemos... el error es Traceback (most recent call last): File "python", line 57, in <module> NameError: name 'alumnos' is not defined
la linea 57 es print obtener_promedio_clase(alumnos)
dice que alumnos no está declarado... entonces... si el compilador no se equivoca... donde te equivocas tu? donde declaraste alumnos? el ámbito global (donde haces el print) tiene acceso a esa variable? esos errores son comunes... aprende a verlos... si no puedes, posiblemente estás muy cansado... aléjate del pc unos 15 minutos, toma agua y vuelve a intentar
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Python] Alguno se ofrece ;D?
Scripting
|
ChicoMaravilla
|
1
|
2,196
|
5 Abril 2011, 05:32 am
por RyogiShiki
|
|
|
[Python] (Ayuda) Código ofuscado.
Scripting
|
adrianmendezRap
|
8
|
8,114
|
21 Abril 2012, 15:16 pm
por adrianmendezRap
|
|
|
Ayuda a desofuscar codigo python
Scripting
|
CADi
|
3
|
6,061
|
2 Agosto 2013, 21:35 pm
por 0x5d
|
|
|
Problema en python [alguno me ayuda??]
« 1 2 »
Scripting
|
Joe Fraddy
|
13
|
6,982
|
16 Enero 2015, 05:17 am
por Eleкtro
|
|
|
alguno puede ayudarme con el desplazamiento y posicionamiento de bits en python
Scripting
|
Joe Fraddy
|
8
|
5,515
|
22 Febrero 2015, 05:50 am
por Joe Fraddy
|
|