ayuda con un problema de python
Chema Cortés
ch3m4 en ch3m4.org
Mie Ago 13 12:09:12 CEST 2003
Sonia escribió:
> hola!
> supongo q el codigo ya esta correcto . ahora mi duda es en el programa
> principal.
> al ejecutarlo me pidde el numero y despues dme dice q 'm' no esta definida
> en aki:
>
> notas=[]
> n=int(raw_input('dime un numero: '))
> for i in range(n):
> notas.append([0.0]*m)
Simplemente resulta que necesitas dos dimensiones para tu matriz. Por un
lado el número de alumnos, y por otro el número de asignaturas.
n=int(raw_input('Número de alumnos: '))
m=int(raw_input('Número de asignaturas: '))
notas=[]
for i in range(n):
notas.append([0.0]*m)
for i in range(0,n):
for j in range(0,m): # <--- cambiado n por m
mat[i,j]=float(raw_input('valor de la matriz: '))
> despues en el principal, como me has dicho q lo de rdo1, y rdo2 no tenia
> sentido. los prints estan dentro de las funciones, pero q tengo q poner en
> el principal para llamarlos.
Invocas las dos funciones, sin nada más:
p1(nif, codigos,notas,codigo_asig)
p2(notas,codigos)
> bueno, te vuelvo a mandar el codigo completo, por si acaso!
> a ver siya sale x fin!!!
> gracias de nuevo!!!
Creo que casi lo tienes.
> #ver la posicion q tiene el maximo contador
> maxi=0
> pos=0
> for i in range(0,len(vcont)):
> if vcont[i] / vmatriculas[i] >maxi:
> maxi=vcont[i]
> #no pongo el cociente pq como maximo,
> #para el resultado solo kiero el codigo de la asignatura , no??
>
> pos=i
> print codigo[pos]
No has dado con el algoritmo. Tienes que hallar la asignatura con la
mayor "proporción entre matriculados y presentados".
Te pongo un ejemplo para que lo entiendas mejor:
Asignatura1: 3 matriculados y 2 presentados
Asignatura2: 5 matriculados y 3 presentados
Para la primera, la proporción sería 2/3==0.6666
Para la segunda, 3/5==0.6000
En proporción, la primera asignatura tiene más presentados que la segunda.
Y te insisto en que las divisiones de enteros sólo dan enteros. Debes
convertirlos a 'float':
proporcion=float(vcont[i])/float(vmatriculas[i])
if proporcion>maxi:
maxi=proporcion
pos=i
Más información sobre la lista de distribución Python-es