Advertisement
tomasfdel

Pitón Práctica 4

Sep 13th, 2016
368
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 9.33 KB | None | 0 0
  1. Tabla 1:
  2. Numero Iteración --- Variables->Valor
  3. 0 ---   cant->3
  4. 1 ---   j->0
  5.         num->2
  6. 2 ---   j->1
  7.         num->0
  8. 3 ---   j->2
  9.         num->-1
  10.  
  11.  
  12. Tabla 2:
  13. Numero Iteración --- Variables->Valor
  14. 0 ---   j->0
  15.         cant->3
  16. 1 ---   num->2
  17.         j->1
  18. 2 ---   num->0
  19.         j->2
  20. 3 ---   num->-1
  21.         j->3
  22.  
  23. Tabla 3:
  24. Numero Iteración --- Variables->Valor
  25. 0 ---   hay_mas_datos ->"Si"
  26. 1 ---   num->2
  27. 2 ---   num->0
  28. 3 ---   num->-1
  29.         hay_mas_datos->"No"
  30.  
  31. Tabla 4:
  32. Numero Iteración --- Variables->Valor
  33. 0 ---   centinela->"2"
  34. 1 ---   num->2
  35.         centinela->"0"
  36. 2 ---   num->0
  37.         centinela->"-1"
  38. 3 ---   num->-1
  39.         centinela->"*"
  40.  
  41. Ciclo infinito: Pasando 0 como argumento la condiciòn del while se cumple infinitamente.
  42.  
  43.  
  44. EJERCICIO 1:
  45. CENTINELA
  46.  
  47. def validar(x):
  48.     if x>0:
  49.         return True
  50.     return False
  51.  
  52.  
  53. def ej1():
  54.     num=int(input("Ingrese un número: "))
  55.     valido=validar(num)
  56.     while valido==False:
  57.         num=int(input("ERROR, ingrese un número: "))
  58.         valido=validar(num)
  59.  
  60.     print("Felicidades, sabe ingresar un número positivo")
  61.  
  62.  
  63. ej1()
  64.  
  65.  
  66. INTERACTIVO
  67.  
  68. def ej1():
  69.     num=int(input("Ingrese un número: "))
  70.     while num<=0:
  71.         num=int(input("ERROR, ingrese un número: "))
  72.  
  73.     print("Felicidades, sabe ingresar un número positivo")
  74.  
  75.  
  76. ej1()
  77.  
  78.  
  79. No tiene sentido usar un ciclo definido ya que se desconoce cuán estúpido es el usuario.
  80.  
  81.  
  82. EJERCICIO 2:
  83. def notas():
  84.     cont=0
  85.     notas=0
  86.     hay_mas_notas="Si"
  87.     while hay_mas_notas=="Si":
  88.         nota=int(input('Ingrese una nota:'))
  89.         cont+=1
  90.         notas+=nota
  91.         hay_mas_notas=input("Hay más notas? (Si o No)")
  92.  
  93.     return notas/cont
  94.  
  95.  
  96. def main():
  97.     print(notas())
  98.    
  99.        
  100. main()
  101.  
  102.  
  103. EJERCICIO 3:
  104. def sucesion():
  105.     cont=0
  106.     suma=0
  107.     num=int(input('Ingrese un numero (-1 corta):'))
  108.     while num!=-1:
  109.         cont+=1
  110.         suma+=num
  111.         num=int(input('Ingrese un numero (-1 corta):'))
  112.     if cont!=0:
  113.         print("La suma total es", suma, ". Cant de numeros es", cont, "y su promedio es", suma/cont)
  114.     else:
  115.         print("La cagaste...")
  116.  
  117. sucesion()
  118.  
  119. EJERCICIO 4:
  120.  
  121. def multiplos (menor, mayor):
  122.     cant=0
  123.     if menor!=0:
  124.         for j in range (menor,mayor+1): #Fak u so mach
  125.             if j%menor==0:
  126.                 cant+=1
  127.     return cant
  128.  
  129. def test_multiplos():
  130.     assert multiplos(0,5) == 0
  131.     assert multiplos(5,5) == 1
  132.     assert multiplos(5,4) == 0
  133.     assert multiplos(1,10) == 10
  134.     assert multiplos(5,30) == 6
  135.    
  136. -------------------------------------
  137. def multiplos (menor, mayor):
  138.     cant=0
  139.     if menor!=0:
  140.         cont=menor
  141.         while cont<=mayor:
  142.             cant+=1
  143.             cont+=menor
  144.     return cant
  145.  
  146. def test_multiplos():
  147.     assert multiplos(0,5) == 0
  148.     assert multiplos(5,5) == 1
  149.     assert multiplos(5,4) == 0
  150.     assert multiplos(1,10) == 10
  151.     assert multiplos(5,30) == 6
  152.  
  153.  
  154. -------------------------------------
  155. La segunda es más clara y realiza MENOS OPERACIONES.
  156.  
  157.  
  158. EJERCICIO 5:
  159. def es_primo(n):
  160.     cont=0
  161.     for i in range (1,n+1):
  162.         if n%i==0:
  163.             cont+=1
  164.  
  165.     if cont==2:
  166.         return True
  167.     return False
  168.  
  169.    
  170. def primos_hasta(n):
  171.     cont=0
  172.     for x in range (2,n+1):
  173.         if es_primo(x):
  174.             cont+=1
  175.     return cont
  176.  
  177.  
  178. def test_primos_hasta():
  179.     assert primos_hasta(7) == 4
  180.     assert primos_hasta(-7) == 0
  181.     assert primos_hasta(1) == 0
  182.  
  183.  
  184. EJERCICIO 6:
  185. import time
  186.  
  187. def ask_pass():
  188.     password="get_rekt"
  189.     val=input("Ingrese la contraseña: ")
  190.     tries=3
  191.     while (tries>0):
  192.         if(val!=password):
  193.             print("Contraseña erronea. Intentos restantes:", tries-1)
  194.             tries-=1
  195.             print("Vuelva a intentar en",2**(3-tries),"segundos.")
  196.             time.sleep(2 ** (3-tries))
  197.             val=input("Ingrese otra contraseña: ")
  198.         else:
  199.             break
  200.  
  201.     if val==password:
  202.         return True
  203.     else:
  204.         return False
  205.  
  206.  
  207. def main():
  208.     if ask_pass():
  209.         print("Good Job")
  210.     else:
  211.         print("Bad Job")
  212.  
  213.  
  214. main()
  215.  
  216. EJERCICIO 7:
  217.  
  218. import random
  219. #No es la solución más beia, pero quería tener Fuerza_de_Voluntad
  220. def check_this():
  221.     Valor=random.randrange(0,10000,step=1)
  222.     print("Debe adivinar un número entre 0 y 10000")
  223.     num=int(input("Ingrese un número: "))
  224.     Fuerza_de_Voluntad=True
  225.     while Fuerza_de_Voluntad:
  226.         if num!=Valor:
  227.             if num<Valor:
  228.                 print("El número ingresado es menor al secreto")
  229.             else:
  230.                 print("El número ingresado es mayor al secreto")
  231.  
  232.             num=int(input("Ingrese otro número (o -1 para rendirse): "))
  233.             if num==-1:
  234.                 Fuerza_de_Voluntad=False
  235.  
  236.         else:
  237.             break
  238.  
  239.     if Fuerza_de_Voluntad:
  240.         print("Congrats")
  241.     else:
  242.         print("Eres débil (o no conocés la búsqueda binaria)")
  243.  
  244.  
  245. check_this()
  246.  
  247. EJERCICIO 8:
  248.  
  249.  
  250. def es_potencia_de_dos(n):
  251.     while n%2==0 and n>0:
  252.         n/=2
  253.  
  254.     if n==1:
  255.         return True
  256.     else:
  257.         return False
  258.  
  259.  
  260.  
  261. def suma_pot_dos(n1, n2):
  262.     suma=0
  263.     for i in range (n1, n2+1):
  264.         if es_potencia_de_dos(i):
  265.             suma+=i
  266.     return suma
  267.  
  268.  
  269. def test_suma_pot_dos():
  270.     assert suma_pot_dos (0,4)==7
  271.     assert suma_pot_dos (-3,4)==7
  272.     assert suma_pot_dos (4,4)==4
  273.     assert suma_pot_dos (5,4)==0
  274.     assert suma_pot_dos (4,65)==124
  275.  
  276.  
  277.  
  278. EJERCICIO 9:
  279. #Definido
  280. def tarifa():
  281.     costo=float(input("Ingrese el costo por segundo de la tarifa: "))
  282.     cant_de_llamadas=int(input("Ingrese la cantidad de llamadas a cobrar: "))
  283.     for i in range (cant_de_llamadas):
  284.         horas=int(input("Ingrese la cant de horas: "))
  285.         minutos=int(input("Ingrese la cant de minutos: "))
  286.         segundo=int(input("Ingrese la cant de segundos: "))
  287.  
  288.         segundo = horas*3600 + minutos*60 + segundo
  289.         print("Duracion de llamada:", segundo, "Costo de llamada: $" + str(costo *segundo))
  290.        
  291.        
  292. tarifa()
  293.  
  294.  
  295. #Centinela
  296. def tarifa():
  297.     costo=float(input("Ingrese el costo por segundo de la tarifa: "))
  298.     Sigue_Metiendo="Si"
  299.     while Sigue_Metiendo=="Si":
  300.         horas=int(input("Ingrese la cant de horas: "))
  301.         minutos=int(input("Ingrese la cant de minutos: "))
  302.         segundo=int(input("Ingrese la cant de segundos: "))
  303.         segundo = horas*3600 + minutos*60 + segundo
  304.         print("Duracion de llamada:", segundo, "Costo de llamada: $" + str(costo *segundo))
  305.         Sigue_Metiendo=input("¿Desea ingresar otra llamada? (Si/No): ")
  306.        
  307. tarifa()
  308.  
  309.  
  310. EJERCICIO 10:
  311. #Definido
  312. def tarifa():
  313.     costo=float(input("Ingrese el costo por segundo de la tarifa: "))
  314.     cant_de_llamadas=int(input("Ingrese la cantidad de llamadas a cobrar: "))
  315.     suma=0
  316.     for i in range (cant_de_llamadas):
  317.         horas=int(input("Ingrese la cant de horas: "))
  318.         minutos=int(input("Ingrese la cant de minutos: "))
  319.         segundo=int(input("Ingrese la cant de segundos: "))
  320.  
  321.         segundo = horas*3600 + minutos*60 + segundo
  322.         suma+=segundo
  323.         print("Duracion de llamada:", segundo, "Costo de llamada: $" + str(costo *segundo))
  324.  
  325.     print("El total facturado es $"+ str(suma*costo) , "para", cant_de_llamadas,"llamadas.")
  326.        
  327. tarifa()
  328.  
  329.  
  330. #Centinela
  331. def tarifa():
  332.     costo=float(input("Ingrese el costo por segundo de la tarifa: "))
  333.     cont=0
  334.     suma=0
  335.     Sigue_Metiendo="Si"
  336.     while Sigue_Metiendo=="Si":
  337.         horas=int(input("Ingrese la cant de horas: "))
  338.         minutos=int(input("Ingrese la cant de minutos: "))
  339.         segundo=int(input("Ingrese la cant de segundos: "))
  340.         cont+=1
  341.         segundo = horas*3600 + minutos*60 + segundo
  342.         suma+=segundo
  343.         print("Duracion de llamada:", segundo, "Costo de llamada: $" + str(costo *segundo))
  344.         Sigue_Metiendo=input("¿Desea ingresar otra llamada? (Si/No): ")
  345.  
  346.     print("El total facturado es $"+ str(suma*costo) , "para", cont,"llamadas.")
  347. tarifa()
  348.  
  349.  
  350.  
  351. EJERCICIO 8 DE LA VERSIÓN NUEVA (KINDERGARTEN LA TENÉS ADENTRO):
  352.  
  353. def main():
  354.     cantPalabras=int(input("Ingrese la cantidad de palabras: "))
  355.     lista=[]
  356.     for i in range(cantPalabras):
  357.         palabra=input("Ingrese una palabra: ")
  358.         lista= lista+[palabra]
  359.        
  360.     print("Las palabras ingresadas fueron: ")
  361.     for i in lista:
  362.         print(i)
  363.        
  364.        
  365. main()
  366.  
  367.  
  368. EJERCICIO 9)
  369. def buscar(listaPalabras):
  370.     aBuscar=input("Ingrese la palabra a buscar: ")
  371.     for i in listaPalabras:
  372.         if i==aBuscar:
  373.             print("La palabra sí se encuentra en la lista")
  374.             return
  375.    
  376.     print("La palabra no se encuentra en la lista")
  377.    
  378.    
  379.    
  380. def main():
  381.     buscar(["The","Cake","Is","A","Lie"])
  382.    
  383.    
  384. main()
  385.  
  386.  
  387. EJERCICIO 10)
  388. def contar(listaPalabras):
  389.     aBuscar=input("Ingrese la palabra a contar: ")
  390.     contador=0
  391.     for i in listaPalabras:
  392.         if i==aBuscar:
  393.             contador+=1
  394.            
  395.    
  396.     if contador:
  397.         if contador==1:
  398.             print("La palabra se encuentra 1 vez")
  399.         else:
  400.             print("La palabra se encuentra",contador,"veces")
  401.     else:
  402.         print("La palabra no se encuentra en la lista")
  403.    
  404.    
  405.    
  406. def main():
  407.     contar(["The","Cake","Is","A","Lie","Lie"])
  408.    
  409.    
  410. main()
  411.  
  412.  
  413. EJERCICIO 13)
  414. def suma_estúpida(lista):
  415.     acum=0
  416.     for i in lista:
  417.         acum+=i
  418.    
  419.     return acum
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement