Advertisement
tomasfdel

Pitón Práctica 5

Sep 27th, 2016
394
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 7.15 KB | None | 0 0
  1. Parte 1.
  2. EJERCICIO 1)
  3. def al_vesre(cadena):
  4.     largo=len(cadena)
  5.     for i in range(largo):
  6.         print(cadena[largo-i-1],end='')
  7.     print()    
  8.    
  9. al_vesre("Trump For President")
  10.  
  11.  
  12. EJERCICIOS 2 y 3)
  13.  
  14. def contar(caracter, cadena):
  15.     contador=0
  16.     for i in cadena:
  17.         if caracter==i:
  18.             contador+=1
  19.     return contador
  20.  
  21.  
  22. def contarVocales(cadena):
  23.     contador=0
  24.     vocales=['a','e','i','o','u','A','E','I','O','U']
  25.     for i in cadena:
  26.         if contar(i,vocales):
  27.             contador+=1
  28.            
  29.     return contador
  30.    
  31. def main():
  32.     print("Cantidad de L:", contar('l',"Dothelallala"))
  33.     print("Vocales:",contarVocales("Dothelallala"))
  34. main()
  35.    
  36. EJERCICIO 4)
  37. def contarPalabras(cadena):
  38.     contadorPalabras=0
  39.     contadorLetras=0
  40.    
  41.     for i in cadena:
  42.         if i==' ':
  43.             if contadorLetras>5:
  44.                 contadorPalabras+=1
  45.             contadorLetras=0
  46.         else:
  47.             contadorLetras+=1
  48.            
  49.            
  50.     if contadorLetras>5:
  51.         contadorPalabras+=1
  52.        
  53.     return contadorPalabras
  54.    
  55. def main():
  56.     print("Palabras largas:", contarPalabras("Me duele pensar ejemplos"))
  57.    
  58. main()
  59.  
  60.  
  61.  
  62.  
  63.  
  64. Parte 2.
  65. EJERCICIO 1)
  66. def sumaAcumulada(cadena):
  67.     contador=0
  68.     cadenaNueva=[]
  69.     for i in cadena:
  70.         contador+=i
  71.         cadenaNueva+=[contador]
  72.        
  73.     return cadenaNueva
  74.    
  75.    
  76.    
  77. def main():
  78.     print("Suma Acumulada:", sumaAcumulada([1,2,3,4,5,-5,-2,-4,-1,-3]))
  79.    
  80. main()
  81.  
  82.  
  83. EJERCICIO 2)
  84. def eliminar(cadena):
  85.     largo=len(cadena)-1
  86.     cadenaNueva=[]
  87.     for i in range(1,largo):
  88.         cadenaNueva+=[cadena[i]]
  89.        
  90.     return cadenaNueva
  91.    
  92.    
  93.    
  94. def main():
  95.     print("Nueva cadena:", eliminar([1,2,3,4,5]))
  96.    
  97. main()
  98.  
  99.  
  100. EJERCICIO 3)
  101. def ordenada(cadena):
  102.     comparador=cadena[0]
  103.     for i in cadena:
  104.         if i<comparador:
  105.             return False
  106.         comparador=i
  107.     return True
  108.    
  109.    
  110. def main():
  111.     if(ordenada([1,1,2,3,4,4])):
  112.         print("Está ordenada")
  113.     else:
  114.         print("No está ordenada")
  115.    
  116. main()
  117.  
  118.  
  119. EJERCICIO 4)
  120. def duplicado(cadena):
  121.     largo=len(cadena)
  122.     for i in range(1,largo):
  123.         for j in range(i):
  124.             if cadena[j]==cadena[i]:
  125.                 return True
  126.        
  127.     return False
  128.    
  129.    
  130. def main():
  131.     if(duplicado([4,3,2,1,5,4])):
  132.         print("Tiene repetidos")
  133.     else:
  134.         print("No tiene repetidos")
  135.    
  136. main()
  137.  
  138.  
  139. EJERCICIO 5)
  140. def buscar(elemento, cadena):
  141.     for i in cadena:
  142.         if i==elemento:
  143.             return True
  144.            
  145.     return False
  146.  
  147.  
  148. def eliminarDuplicados(cadena):
  149.     cadenaNueva=[]
  150.     for i in cadena:
  151.         if buscar(i, cadenaNueva)==False:
  152.             cadenaNueva+=[i]
  153.            
  154.     return cadenaNueva
  155.    
  156.    
  157. def main():
  158.    print("La cadena sin repeticiones es:",eliminarDuplicados([3,1,2,3,3,2,1]))
  159.    
  160. main()
  161.  
  162.  
  163. EJERCICIO 6)
  164. def Binary(elemento, cadena):
  165.     inicio=0
  166.     final=len(cadena)-1
  167.     while(inicio<=final):
  168.         medio=inicio/2 + final/2
  169.         if(elemento==cadena[medio]):
  170.             return True
  171.         if (elemento<cadena[medio]):
  172.             final=medio-1
  173.         if (elemento>cadena[medio]):
  174.             inicio=medio+1
  175.        
  176.     return False
  177.    
  178.    
  179. def main():
  180.     if(Binary(1,[2,3,4,5,6,7,8,9,10])):
  181.         print("Se encuentra en la lista")
  182.     else:
  183.         print("No se encuentra en la lista")
  184.    
  185. main()
  186.  
  187.  
  188.  
  189. Parte 3.
  190. EJERCICIO 1)
  191. """
  192.    Las tuplas son formadas por dos elementos (Número,Palo).
  193.    Representan a todas las cartas de la baraja francesa salvo
  194.    los comodines. Número es un natural del 1 al 13. Siendo
  195.    el As el 1, y las J,Q y K el 11,12 y 13 respectivamente.
  196.    Palo es un String que representa a qué palo pertenece la carta,
  197.    "Trébol", "Pica", "Corazón" y "Diamante"
  198. """
  199.  
  200. def Poker(carta1,carta2,carta3,carta4,carta5):
  201.     cadena=[]
  202.     for i in range(14):
  203.         cadena+=[0]
  204.        
  205.     cadena[carta1[0]]+=1
  206.     cadena[carta2[0]]+=1
  207.     cadena[carta3[0]]+=1
  208.     cadena[carta4[0]]+=1
  209.     cadena[carta5[0]]+=1
  210.    
  211.     for i in cadena:
  212.         if i==4:
  213.             return True
  214.     return False
  215.    
  216.    
  217.    
  218. def main():
  219.     if Poker((1,"Trébol"),(1,"Pica"),(1,"Diamante"),(2,"Diamante"),(2,"Corazón")):
  220.         print("Hay un póker")
  221.     else:
  222.         print("No hay un póker")
  223.        
  224. main()
  225.  
  226.  
  227. EJERCICIO 2)
  228. """
  229.    Las tuplas se forman con enteros de la forma (Horas,Minutos,Segundos)
  230. """
  231.  
  232.  
  233. def sumaTiempos(tiempo1,tiempo2):
  234.     nuevaHora=tiempo1[0]+tiempo2[0]
  235.     nuevoMinuto=tiempo1[1]+tiempo2[1]
  236.     nuevoSegundo=tiempo1[2]+tiempo2[2]
  237.     nuevoMinuto+=(nuevoSegundo//60)
  238.     nuevoSegundo=nuevoSegundo%60
  239.     nuevaHora+=(nuevoMinuto//60)
  240.     nuevoMinuto=nuevoMinuto%60
  241.     return (nuevaHora,nuevoMinuto,nuevoSegundo)
  242.    
  243.  
  244. def main():
  245.     print("La suma de las horas es:",sumaTiempos( (5,59,59), (5,5,5)))
  246.  
  247.  
  248. main()
  249.  
  250.  
  251. EJERCICIO 3)
  252. def diaSiguiente(fecha):
  253.     if (fecha[0]==31 and fecha[1]==12):
  254.         return (1,1,fecha[2]+1)
  255.     #No tengo ganas de considerar bisiestos
  256.     if (fecha[1]==2 and fecha[0]==28):
  257.         return (1,3,fecha[2])
  258.     if (fecha[0]==31 and (fecha[1]==1 or fecha[1]==3 or fecha[1]==5 or fecha[1]==7 or fecha[1]==8 or fecha[1]==10)):
  259.         return (1,fecha[1]+1,fecha[2])
  260.     if (fecha[0]==30 and (fecha[1]==4 or fecha[1]==6 or fecha[1]==9 or fecha[1]==11)):
  261.         return (1,fecha[1]+1,fecha[2])
  262.     return (fecha[0]+1,fecha[1],fecha[2])
  263.    
  264.    
  265. def main():
  266.     fecha=(1,1,2016)
  267.     for i in range(365):
  268.         fecha=diaSiguiente(fecha)
  269.         print(fecha)
  270.        
  271. main()
  272.  
  273.  
  274.  
  275. EJERCICIO 4)
  276. def posicion(elemento, cadena):
  277.     for i in range(len(cadena)):
  278.         if(cadena[i]==elemento):
  279.             return i
  280.  
  281.  
  282. def diaSiguiente2(fecha):
  283.     meses=["EasterEgg","Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"]
  284.     if (fecha[0]==31 and fecha[1]==meses[12]):
  285.         return (1,'Ene',fecha[2]+1)
  286.     #No tengo ganas de considerar bisiestos
  287.     if (fecha[1]==meses[2] and fecha[0]==28):
  288.         return (1,'Mar',fecha[2])
  289.     if (fecha[0]==31 and (fecha[1]==meses[1] or fecha[1]==meses[3] or fecha[1]==meses[5] or fecha[1]==meses[7] or fecha[1]==meses[8] or fecha[1]==meses[10])):
  290.         return (1,meses[posicion(fecha[1],meses)+1],fecha[2])
  291.     if (fecha[0]==30 and (fecha[1]==meses[4] or fecha[1]==meses[6] or fecha[1]==meses[9] or fecha[1]==meses[11])):
  292.         return (1,meses[posicion(fecha[1],meses)+1],fecha[2])
  293.     return (fecha[0]+1,fecha[1],fecha[2])
  294.    
  295.    
  296. def main():
  297.     fecha=(1,"Ene",2016)
  298.     for i in range(365):
  299.         fecha=diaSiguiente2(fecha)
  300.         print(fecha)
  301.        
  302. main()
  303.  
  304.  
  305.  
  306. EJERCICIO 5)
  307. def domino(ficha1,ficha2):
  308.     return ficha1[0]==ficha2[0] or ficha1[0]==ficha2[1] or ficha1[1]==ficha2[0] or ficha1[1]==ficha2[1]
  309.    
  310. def domino2(cadena):
  311.     fichas=cadena.split()
  312.     return domino(fichas[0].split("-") , fichas[1].split("-"))
  313.    
  314.    
  315.    
  316. def main():
  317.     if (domino2("2-4 5-4")):
  318.         print("Las fichas coinciden")
  319.     else:
  320.         print("Las fichas no coinciden")
  321.        
  322. main()
  323.        
  324. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement