Python

1,724 views

Published on

Presentació damunt Python al creant bits del 4-12-2009 al Parc Bit.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,724
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
36
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Python

  1. 1. La tecnologia web al teu servei <ul><li>Benvinguda
  2. 2. Introducció a Python (1,5 h)
  3. 3. Pausa (15 min)
  4. 4. Introducció a Django (1,5 h)
  5. 5. Pausa
  6. 6. Desplegament de Django (45 min)
  7. 7. ... </li></ul>twitter o flickr: #creant_bits
  8. 8. Què és Python <ul><li>Un llenguatge interpretat orientat a objectes
  9. 9. Una eina de desenvolupament ràpid
  10. 10. Amb una sintaxi clara
  11. 11. Lliure i multiplataforma
  12. 12. Creat per Guido Van Rossum al 1991
  13. 13. I que pren el nom dels Monty Python Flying Circus
  14. 14. Amb llibreries per a pràcticament qualsevol cosa </li></ul>
  15. 15. Per a què serveix? <ul><li>Administració de sistemes
  16. 16. Interfícies gràfiques
  17. 17. Programació web
  18. 18. Càlcul numèric
  19. 19. Aplicacions amb accés a BD
  20. 20. Integració (glue language)
  21. 21. Prototipat
  22. 22. Desenvolupament ràpid i àgil </li></ul>
  23. 23. Mancances <ul><li>Sistemes de temps real
  24. 24. Sistemes amb temps de processament crítics
  25. 25. No es tant ràpid com els llenguatges compilats
  26. 26. El GIL pot ser un problema </li></ul>Però sempre hi ha maneres de fer-ho si convé!
  27. 27. Comencem! <ul><li>python </li></ul>Editors: <ul><li>Netbeans
  28. 28. Eclipse + PyDev
  29. 29. Vim, Gvim
  30. 30. Emacs
  31. 31. Ulipad
  32. 32. Notepad++
  33. 33. ... </li></ul>
  34. 34. Però abans un poc de Zen
  35. 35. Ara sí: Python com a calculadora
  36. 36. Una consola millor: ipython <ul><li>Administració de sistemes
  37. 37. Consola més ”amigable”
  38. 38. Autocompletat
  39. 39. I un munt de drecers
  40. 40. És massa bo per no fer-ho servir! </li></ul>
  41. 41. ipython provau el help i el dir
  42. 42. Parlem ara de la identació <ul><li>Forma part del llenguatge
  43. 43. Força la legibilitat
  44. 44. No té més problemes que pensar a configurar el nostre editor: </li><ul><li>tabs a espais
  45. 45. 4 espais per tab
  46. 46. i ja de pàs posau-ho com utf-8
  47. 47. i retorns tipus unix </li></ul></ul>
  48. 48. Cadenes
  49. 49. I tot és un objecte! <ul><li>len(”tot és un objecte”)
  50. 50. ”hola”.split('o')
  51. 51. (3+4j).real
  52. 52. Feis dir(”hola”)
  53. 53. 5.3.is_integer() </li></ul>
  54. 54. Cadenes i Slice <ul><li>Les cadenes són immutables
  55. 55. Podem accedir als seus elements tractact-les com a vectors
  56. 56. L'slicing ens permet seleccionar un sols caràcter, o un grup </li><ul><li>cadena[0]
  57. 57. cadena[1:3]
  58. 58. cadena[-1] </li></ul></ul>
  59. 59. Exemples amb cadenes
  60. 60. Llistes i tuples <ul><li>Les llistes són mutables
  61. 61. Les tuples són inmutables
  62. 62. Poden contenir qualsevol objecte
  63. 63. Repetesc: qualsevol </li></ul>
  64. 64. Què podem fer amb les llistes? <ul><li>Sumar (+)
  65. 65. Seleccionar-ne un subconjunt (slice)
  66. 66. Esborrar-ne elements (del llista[x])
  67. 67. Ordenar-les amb llista.sort() </li></ul>
  68. 68. Diccionaris <ul><li>Es defineix amb dict
  69. 69. O bé creant-lo:
  70. 70. dir(diccionari) </li></ul>
  71. 71. Fent feina amb diccionaris
  72. 72. Estuctures de control <ul><li>IF
  73. 73. No hi ha sèntencies case o switch!
  74. 74. Amb l'estructura de l'if i els diccionaris no és necessària </li></ul>if condicio: # elif condicio: # elif condicio: # else: #
  75. 75. Un parell de tipus més <ul><li>Conjunts: Set
  76. 76. None
  77. 77. True
  78. 78. False
  79. 79. A efectes de comparació és fals: None, False, zero o buid </li></ul>
  80. 80. Exemples amb if
  81. 81. For <ul><li>Ens permet recorre llistes o qualsevol cosa que permeti la iteració (recordau el duck typing?)
  82. 82. for element in llista:
  83. 83. codi
  84. 84. else:
  85. 85. codi </li></ul>
  86. 86. Exemples amb FOR
  87. 87. While <ul>while condicio: <ul>codi </ul>else: <ul>codi </ul></ul>
  88. 88. Cream un arxiu <ul><li>Podem crear programes i guardar-los a un arxiu
  89. 89. Configuram l'editor: tabs a espais
  90. 90. Tabs a 4 espais
  91. 91. UTF-8 i salt de línia Unix </li></ul>#!/usr/bin/env python # -*- coding: UTF-8 -*- # autor: # licence: if __name__ == '__main__': pass
  92. 92. Funcions #!/usr/bin/env python # -*- coding: UTF-8 -*- def fibo(n): &quot;&quot;&quot;Calcula el número indicat per n de la successió de fibonnaci. An = An-1 + An-2 Paràmetres: n és un nombre enter. Nota: la seqüència comença pel zero. &quot;&quot;&quot; if n == 1: return 1 elif n==0: return 0 else: return fibo(n-1)+fibo(n-2) if __name__ == '__main__': print &quot;fibonacci 2 %s: &quot; % fibo(2) print fibo(3) print fibo(10) Definició de la funció documentació retorn execució
  93. 93. POO: classes #!/usr/bin/env python # -*- coding: UTF-8 -*- class Prova: &quot;Classe de prova&quot; def __init__(self, a, b): self.a = a self.b = b def suma(self): return self.a+self.b if __name__ == '__main__': p = Prova(2, 5) print p.suma() p = Prova('hola', ' com anam') print p.suma() constructor atributs mètode
  94. 94. POO (2) #!/usr/bin/env python # -*- coding: UTF-8 -*- class Prova: &quot;Classe de prova&quot; VALOR = 10 def __init__(self, a, b): self.a = a self.b = b def suma(self): &quot;mètode lligat a la instància&quot; return self.a+self.b @classmethod def where_am_i(cls): &quot;Exemple de mètode estàtic. Mètode de classe&quot; return __name__ @property def major(self): if self.a >= self.b: return self.a else: return self.b mètode de classe estàtic propietat
  95. 95. Els mòduls <ul><li>from math import *
  96. 96. from math import sin
  97. 97. import math </li></ul>sin(10) en els dos primers casos math.sin(10) en el segon
  98. 98. Què ens falta? <ul><li>Herència i polimorfisme
  99. 99. Decoradors, generadors, iteradors
  100. 100. Comprehensió de llistes, unicode, ...
  101. 101. Manipulació d'arxius
  102. 102. Creació de mòduls, instrospecció
  103. 103. Excepcions, try...finally
  104. 104. Estudi de les llibreries bàsiques
  105. 105. Depuració </li></ul>
  106. 106. Però ja tenim el 80% <ul><li>Amb això ja podem entendre el codi
  107. 107. Començar a crear scripts
  108. 108. Llegir la documentació </li></ul>
  109. 109. Recordau! <ul><li>Convé configurar l'editor
  110. 110. help i dir són els vostres amics
  111. 111. Python NO es Java, no és PHP, té la seva manera de programar
  112. 112. En cas de dubte consultau el Zen
  113. 113. I seguiu les normes d'estil PEP-8 </li></ul>
  114. 114. Pausa! Gràcies! En uns minuts més! amb Django!

×