def positivo(x): ''' Entrada: x, un numero real, class float Devuelve el booleanoTrue si es positivo, False en caso contrario ''' print('Instrucciones dentro de la funcion positivo') return x > 0 def positivo1(x): ''' Entrada: x, un numero real, class float Devuelve None ''' print("El programa ha llegado, hasta la linea 10") x > 0 fact = 6; i = 'Peña la Milana'; n = 20 def factorial(n): ''' Calcula el factorial de un numero entero, si es negativo su valor es -1 y si es cero 1 ''' fact = 1 if n < 0: return -1 for i in range(1, n+1): fact *= i return fact def representacion_numero_en_base(): ''' Devuelve la lista de la representacion del entero positivo n en una base b, ambas leidas por teclado ''' print('Dame el numero: ', end = ' ') n = int(input()) print('Dame la base: ', end = ' ') b = int(input()) L = [] if b < 2: return L while b <= n: L = [n % b] + L n = n // b return [n]+ L def rep_base(n, b): '''Devuelve la cadena con la representacion de el numero n en la base b ''' l ='' while n != 0: l = str(n%b)+l n = n // b return l def letras(palabra, letra='a'): ''' Entrada una cadena y una letra (por defecto la letra a) Devuelve el numero de veces que la cadena contiene la letra ''' i = 0 for x in palabra: if x == letra: i += 1 return i def func_a(): print('funcion_a') return 8 def func_b(y): print('funcion_b') return y def func_c(z): print('funcion_c') return z() def coseno(x, m = 100): cos = 0 for j in range(m+1): cos += (-1)**j * x**(2 * j) / factorial(2 * j) return cos def isPrimo(m): if m <= 2: return False for i in range(2,m//2): if m % i == 0: return False return True def ordena_mezclando(izda, dercha): ordenada = [] while len(izda) > 1 and len(dercha) > 1: if izda[0] <= dercha[0]: ordenada.append(izda[0]) del(izda[0]) else: ordenada.append(dercha[0]) del(dercha[0]) #print('lista_ordenada', ordenada) if len(izda) == 0: ordenada += dercha[0:] else: ordenada += izda[0:] return ordenada ##try: ## a = int(input("Dame un numero: ")) ## b = int(input("Dame otro numero: ")) ## print("a/b = ", a/b) ## print("a*b = ", a*b) ##except ValueError: ## print("No puedo convertir a un objeto numerico.") ##except ZeroDivisionError: ## print("No se puede dividir por cero") ##except: ## print(" Otros errores.") def ratios(L1, L2): """ Suponemos que L1 y L2 son listas de igual longitud de numeros Devuelve: una lista conteniendo L1[i]/L2[i] """ assert len(L1) == len(L2) ratios = [] for i in range(len(L1)): try: ratios.append(L1[i]/L2[i]) except ZeroDivisionError: ratios.append(float('nan')) #nan = Not a Number except: raise ValueError('error de argumento en ratios') return ratios ##fichero=open("gastos.txt","r") ##total=0 ##for linea in fichero: ## num=int(linea) ## total+=num ##fichero.close() ##print ("TOTAL",total) ## ##print("Vayan escribiendo sus nombres.") ##print('Escriban "FIN" cuando no quede nadie más.') ##cadena="PERSONAL\n" ##fichero=open("lista.txt","w") ##while cadena!="FIN": ## fichero.write(cadena+"\n") ## cadena=input() ## ##archivo=open('votos.txt','r') ##for linea in archivo: ## print(linea) ##archivo.close() ## ##archivo=open('votos.txt','r') ##lista=[] ##for linea in archivo: ## par=linea.split() ## lista.append((par[0],int(par[1]))) ##archivo.close() ##print (lista) ## ##suma = 0 ##for x in lista: ## suma += x[1] ## ##umbral=suma*.03 ##pasan=[] ##for x in lista: ## if x[1]>=umbral: ## pasan.append(x) ##print(pasan) ## ##def ganador(lista): ## record=0 ## for i in range(len(lista)): ## if lista[i][1]>record: ## record=lista[i][1] ## gana=i ## return gana ## ##i=ganador(pasan) ##print('El primer escaño va para',pasan[i][0]+'.') ## ## ##def maxi(lista): ## record=0 ## for i in range(len(lista)): ## if lista[i]>record: ## record=lista[i] ## gana=i ## return gana ## ##print ('Escaños totales: ') ##total=int(input()) ## ##cuentas=[] ##asig=[] ##for x in pasan: ## cuentas.append(x[1]) ## asig.append(0) ## ### Hemos guardado en la lista «cuentas» una copia de los votos de cada ### candidatura, para ir haciendo aquí las divisiones oportunas. ### En la lista «asig» iremos anotando los escaños que se asignen. ## ##for i in range(1,total+1): ## j=maxi(cuentas) ## asig[j]+=1 ## cuentas[j]=pasan[j][1]/(asig[j]+1) ##print(asig) ## ## ##archivo=open('resultados.txt','w') ##for i in range(len(pasan)): ## if asig[i]>0: ## archivo.write('{0:10s} {1:1d}\n'.format(pasan[i][0]+':',asig[i])) ##archivo.close() ## ## ##from os import getcwd, listdir ## ##def ganador(lista): ## record=0 ## for i in range(len(lista)): ## if lista[i][1]>record: ## record=lista[i][1] ## gana=i ## return gana ## ##def maxi(lista): ## record=0 ## for i in range(len(lista)): ## if lista[i]>record: ## record=lista[i] ## gana=i ## return gana ## ## ##ruta=getcwd() ##archivos=listdir(ruta) ##datos=[] ##for x in archivos: ## if x[:2]=='c_': ## datos.append(x) ##for provincia in datos: ## archivo=open(provincia,'r') ## lista=[] ## suma=0 ## arranque=True ## for linea in archivo: ## if arranque: ## arranque=False ## total=int(linea) ## continue ## par=linea.split() ## v=int(par[1]) ## lista.append((par[0],v)) ## suma+=v ## archivo.close() ## umbral=suma*3/100 ## pasan=[] ## for x in lista: ## if x[1]>=umbral: ## pasan.append(x) ## ## cuentas=[] ## asig=[] ## for x in pasan: ## cuentas.append(x[1]) ## asig.append(0) ## ## for i in range(1,total+1): ## j=maxi(cuentas) ## asig[j]+=1 ## cuentas[j]=pasan[j][1]/(asig[j]+1) ## ## n_salida='res'+provincia[1:] ## salida=open(n_salida,'w') ## ## for i in range(len(pasan)): ## if asig[i]>0: ## salida.write('{0:10s} {1:1d}\n'.format(pasan[i][0]+':',asig[i])) ## salida.close() ## ##import urllib.request ##from urllib.error import HTTPError ##web = 'http://web.unican.es/centros/minas/ImagenesExposicion/' ##for index in range(1,20): ## nombre = str(index)+".jpg" ## url = web + nombre ## try: ## f = urllib.request.urlopen(url) ## archivo = open(nombre, "wb") ## archivo.write(f.read()) ## archivo.close() ## except HTTPError : ## print("HTTP Error:", url)