La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Clase 9: Repaso/Resumen

Presentaciones similares


Presentación del tema: "Clase 9: Repaso/Resumen"— Transcripción de la presentación:

1 Clase 9: Repaso/Resumen
lectura/escritura y asignación funciones selección de instrucciones (if-else) repetición de instrucciones (while) y recursión Strings Archivos Clases y objetos Herencia J.Alvarez

2

3 Clase 9: Repaso/Resumen
%: operador de resto de división #invertir entero de 3 dígitos n=input(“Nº 3 dígitos?”) d1=n/100; d3=n%10 d2=n%100/10 #d2=n/10%10 print“inverso=”,100*d3+10*d2+d1 #cajero automático d=input(“¿Cuánto dinero necesita?”) print d/20000,”de $20.000”; d=d%20000 print d/10000,”de $10.000”; d=d%10000 print d/5000,”de $5.000”); d=d%5000 print d/2000,”de $2.000”); d=d%2000 print d/1000,”de $1.000”) J.Alvarez

4 Funciones predefinidas
Clase 9: Repaso/Resumen Funciones predefinidas J.Alvarez

5 Funciones definidas por el programador
Clase 9: Repaso/Resumen Funciones definidas por el programador #convertir fecha ddmmaaaa a la forma aaaammdd def aaaammdd(x): dd=x/ ; mm=x/10000%100; aaaa=x%10000 return aaaa* mm*100 + dd #convertir fecha aaaammdd a la forma ddmmaaaa def ddmmaaaa(x): dd=x%100; mm=x%10000/100; aaaa=x/10000 return dd* mm* aaaa #seleccionar mayor entre dos fechas f1=input(“fecha1(ddmmaaaa)?”) f2=input(“fecha2(ddmmaaaa)?”) print“mayor=“,ddmmaaaa(max(aaaammdd(f1),aaaammdd(f2))) J.Alvarez

6 Instrucción if print “resolver ecuación axx+bx+c=0” a=input(“a?”); b=input(“b?”); c=input(“c?”) print “resultado:”, if a==0 and b==0: print “indefinido” elif a==0: print”x=“,-b/c else: d=b**2-4*a*c if d==0: print “x=“,-b/(2*a) elif d>0 raiz=math.sqrt(d) print “x=“,(-b+raiz)/(2*a),(-b-raiz)/(2*a) print “raices complejas”

7 Clase 9: Repaso/Resumen
Instrucción if def cachipun(x,y): if not ok(x) or not ok(y): return “error” elif x==y: return “empate” elif x==“piedra” and y==“tijeras” \ or x==“papel” and y====“piedra” \ or x==“tijeras” and y==“papel”: return “gana primero” else : return “gana segundo” def ok(x): #devuelve True o False return x==“piedra” \ or x==“papel” \ or x==“tijeras” J.Alvarez

8 Clase 9: Repaso/Resumen
Instrucción while #tabla celsius - fahrenheit g=-20 while g<=40: print g,”ºC=“,9.0/5.0*g+32,”ºF” g=g+5 #tabla grados – funcion seno grados=0 while grados<=360: radianes=math.pi*grados/180 print grados,radianes,math.sin(radianes) grados=grados+10 J.Alvarez

9 Clase 9: Repaso/Resumen
Patrones (esquemas) para proceso de listas #inicializar #inicializar mayor=0; mayor=0; #leer 1º #repetir siempre n=input(“nº?”) while True: #repetir mientras #leer while n!=0: n=input(“nº?”) #procesar #condición de término if n>mayor: mayor=n if n==0: break #leer sgte #procesar n=input(“nº?”) mayor=max(mayor,n) #finalizar #finalizar print“mayor=“,mayor print “mayor=“,mayor J.Alvarez

10 Clase 9: Repaso/Resumen
J.Alvarez

11

12 Clase 9: Repaso/Resumen
Funciones Recursivas def digitos(x): if abs(x)<10: return 1 #caso base else: return 1+digitos(x/10) #nºs de Fibonacci: 0,1,1,2,3,5,8,13, … def fibonacci(i): if i<=2: return i-1 return fibonacci(i-1)+fibonacci(i-2) J.Alvarez

13 Clase 9: Repaso/Resumen
procedimientos (no devuelven resultado) recursivos def misterio(): n=input(“nº?”) if n==0: return misterio() print n ¿Qué hace misterio() con los sgtes datos? nº?6 nº?3 nº?5 nº?0 J.Alvarez

14

15 #invierte string. Ej:inverso(“roma”)=“amor
def inverso(x): if x==“”: return “” else: return inverso(x[1:])+x[0] #capicua: capicua(“reconocer”)=true def capicua(x): return x==inverso(x) #determinar si una frase es capicúa frase=raw_input(“frase?”) frase=frase.replace(“ “,””).lower() if capicua(frase): print “capicua” print “no es capicua”

16 Archivos #grabar líneas con información correcta #abrir archivos de lectura y escritura a=open(“notas.txt”,”r”) #para lectura b=open(“notas1.txt”,”w”) #para escritura #leer todas las lineas for linea in a: #si nombre es alfabético y nota numérica if linea[0:20].replace(“ “,””).isalpha() \ and linea[20:22].replace(“ “,””).isdigit(): #grabar en archivo b.write(linea) #cerrar archivos b.close() a.close

17 #promedio de notas y % de aprobados
suma=alumnos=aprobados=0 #asignación “múltiple” a=open(“notas1.txt”) #2º parámetro “r” for linea in a: alumnos += 1 #alumnos=alumnos+1 nota=int(linea[20:22]) #conversión a int suma += nota if nota>=40: aprobados += 1 print “promedio”,suma/alumnos print “% aprobados=“, 100.0*aprobados/alumnos

18 #alumnos con mejor nota
mejores=“” a=open(“notas1.txt”) for linea in a: #obtener nombre y nota nombre=linea[0:20] nota=int(linea[20:22]) #mantener alumnos con mejor nota if nota>mejorNota: mejorNota=nota mejores=nombre elif nota==mejorNota: mejores += “\n” + nombre a.close() print “mejores alumnos:\n”+mejores

19 Clases Instante1(HH:MM)?XX:XX Instante2(HH:MM)?XX:XX Suma= HH:MM
Diálogo del programa Instante1(HH:MM)?XX:XX Instante2(HH:MM)?XX:XX Suma= HH:MM Diferencia= HH:MM Mayor= HH:MM Programa T1=Tiempo(raw_input(“Instante1(HH:MM)?“)) T2=Tiempo(raw_input(“Instante2(HH:MM)?“)) print “Suma=“, T1+T #T1.__add__(T2) print “Diferencia=“, T1-T2 #T1.__sub__(T2) if T1 > T2: #T1.__gt__(T2) print “Mayor=“,T #T1.__str() else: print “Mayor=“,T2

20

21

22

23

24


Descargar ppt "Clase 9: Repaso/Resumen"

Presentaciones similares


Anuncios Google