Python - Problema con funcion

   
Vista:

Problema con funcion

Publicado por Paolo (2 intervenciones) el 17/11/2015 20:35:23
Hola a todos, tengo un problema con una funcion que a continuacion la adjunto.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
def examenes_parciales():
    response.title="Docentes"
    response.subtitle="Examenes parciales"
    COMISIONID= (request.args[0])
    q = db.alumnos.alumnoid==db.inscripcionescomision.alumnoid
    q &= db.comisiones.comisionid==COMISIONID
    #q &= db.comisiones.materiaid==db.examenes.materiaid
	#q &=db.inscripcionesexamen.alumnoid==db.alumnos.alumnoid
	# Busca las comisiones que coincidan
    q &= db.inscripcionescomision.condicion == 1 #REGULAR
    q &= db.inscripcionescomision.comisionid ==  db.comisiones.comisionid
	#q &= db.inscripcionesexamen.examenid == db.examenes.examenid
    q &= db.comisiones.materiaid == db.materias.materiaid
    filas=db(q).select(db.alumnos.ALL,db.comisiones.materiaid, orderby=db.alumnos.nombre, distinct=True)
    i=0
    a=0
    if request.vars.GRABAR:
        for fila in filas:
            if request.vars.condicion=="1":
                calificacion=3 #PARCIAL
                periodo=36 #PRIMER CUATRIMESTRE
            elif request.vars.condicion=="2":
                calificacion=3 #PARCIAL
                periodo=37 #SEGUNDO CUATRIMESTRE
            elif request.vars.condicion=="1r":
                calificacion=4 #RECUPERATORIO
                periodo=36 #PRIMER CUATRIMESTRE
            elif request.vars.condicion=="2r":
                calificacion=4 #RECUPERATORIO
                periodo=37 #SEGUNDO CUATRIMESTRE
            fecha= request.vars.fecha
            alumno_id= fila.alumnos.alumnoid
            materiaid=fila.comisiones.materiaid
			#materia_id = alumno.materiaid
			# calificacion_id = 1
            nota = int(request.vars.get("NOTA_%s" % alumno_id, 0))
			# libro = request.vars.libro
			# folio =request.vars.folio
			#observaciones= request.vars.get("observaciones_%s" % alumno_id, 0)
            establecimiento= "I.S.T.B.P"
            a=5
            db.notas.insert(alumnoid=alumno_id, materiaid=materiaid, periodoid=periodo, calificacionid=calificacion, nota=nota ,fecha=fecha, establecimiento=establecimiento)
            i= i+1
    return{'filas':filas,'a':a}

se usa con web2py y al utilizarla me da el siguiente error.

<type 'exceptions.ValueError'> invalid literal for int() with base 10: ''

Versión
web2py™ Version 2.9.11-stable+timestamp.2014.09.15.23.35.11
Python Python 2.7.6: /usr/bin/python (prefix: /usr)
Rastreo
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Traceback (most recent call last):
File "/home/www-data/web2py/gluon/restricted.py", line 224, in restricted
exec ccode in environment
File "/home/www-data/web2py/applications/campuswebpro/controllers/docentes.py", line 859, in <module>
File "/home/www-data/web2py/gluon/globals.py", line 392, in <lambda>
self._caller = lambda f: f()
File "/home/www-data/web2py/gluon/tools.py", line 3439, in f
return action(*a, **b)
File "/home/www-data/web2py/gluon/tools.py", line 3439, in f
return action(*a, **b)
File "/home/www-data/web2py/applications/campuswebpro/controllers/docentes.py", line 383, in examenes_parciales
nota = int(request.vars.get("NOTA_%s" % alumno_id, 1))
ValueError: invalid literal for int() with base 10: ''

Al tener varios alumnos en la lista para cargar las notas y solo cargar la de uno de ellos ocurre el error y no al cargar todas las notas de los alumnos, es decir un casillero vacio me da error. pero si todos estan con notas no ocurre.

Gracias por su ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problema con funcion

Publicado por Fernando avalos09fernando@hotmail.com (1 intervención) el 01/12/2015 13:08:58
Puede que tu codigo tenga el error cuando defines la variable nota ya que usas la conversion de tipos de str a int que no es posible
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con funcion

Publicado por Paolo paozam@hotmail.com (2 intervenciones) el 03/12/2015 22:47:41
Si coloco notas en todos los alumnos no hay problema, asi que no creo que sea un problema en la conversión de str a int, solamente se da cuando dejo un alumno o mas de uno sin cargar nota en la vista.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar