Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Historia
Creador: Guido van Rossum
• Python 2
Filosofı́a de Python
• Tomar ideas prestadas de otros lenguajes que tengan sentido
• ”Las cosas deben ser tan simples como sea posible, pero no más simples”
• Haz una cosa bien (UNIX)
• No preocuparse mucho sobre el performance, planear primero, después
optimizar
1
• No molestar a los usuarios con detalles de los que la máquina se pueda
encargar
• Soportar y animar a que el código sea independiente de la plataforma sin
restringir la accesibilidad que se tenga en ella
Zen de Python
• Bello es mejor que feo
• Explı́cito es mejor que implı́cito
• Simple es mejor que complejo
• Complejo es mejor que complicado
Editores de texto
• Gedit
• Kate
Terminal
• Console (konsole)
• Gnome-terminal
$ python3
Python 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
2
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren’t special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you’re Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it’s a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let’s do more of those!
>>> 1+1
2
>>> a=10
>>> b=-10
>>> a+b
0
>>> a=1.1
>>> b=2.2
>>> a+b
3.3000000000000003 #(ERROR DE PUNTO FLOTANTE)
>>> a=1j
>>> b=2+3j
>>> a+b
(2+4j)
>>> print("Hola Mundo!")
Hola Mundo!
Edición en Gedit
#!/usr/bin/python3
#La primera linea se llama shebang
print("Hola mundo!")
$ python3 pydia1.py
3
Hola mundo!
#Para poder concatenar un número y una cadena, debo convertir el número a cadena con str()
mi_variable="Hola "+str(7)
print(mi_variable)
mi_var=nombre
print(mi_var)
Booleanos
• None
• False
• Cero
Operaciones booleanas
• not :: Negación del objeto evaluado
• and :: Evaluación Y
• or :: Evaluación Ó
4
Comparaciones
>>> "abc"<"bcd"
True
>>> "abc"<"bcd"<"bce"
True
>>> "abc"<"cab"
True
>>> "abc"<"abb"
False
>>> 1<1
False
>>> 1==1
True
>>> a=1
>>> b=1
>>> a is b
True
Tipos numéricos
Operaciones
• x + y :: Suma
• x*y :: Multplicación
• x/y :: División (piso)
• x%y :: Residuo
• -x :: Negación
• abs(x) :: Valor absoluto
• int(x) Cast a entero
• float(x) :: Cast a float
• complex(re,im) ::
5
• str.endswith(suffix[,start[,end]]) :: Regresa verdadero si la cadena termina
con la subcadena suffix
a=[1,2,3]
>>> a
[1, 2, 3]
>>> b=[4,5]
>>> a+b
[1, 2, 3, 4, 5]
>>> a
[1, 2, 3]
>>> b
[4, 5]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5]
>>> a*=3
>>> a
[1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
>>> a.count(5)
3
>>> a.index(3)
2
>>> c=a.insert(3,’a’)
>>> c
>>> a
[1, 2, 3, ’a’, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
>>> a.pop()
5
>>> a
[1, 2, 3, ’a’, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4]
>>> a.pop([3])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: ’list’ object cannot be interpreted as an integer
>>> a.pop(3)
’a’
>>> a
[1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4]
>>> a.remove(1)
>>> a
[2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4]
>>> a.reverse()
>>> a
[4, 3, 2, 1, 5, 4, 3, 2, 1, 5, 4, 3, 2]
>>> d=[24,4,64,2,7,8]
6
>>> d.sort(reverse=True)
>>> d
[64, 24, 8, 7, 4, 2]
>>> tupla=(1,2,3)
>>> tupla.remove(0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: ’tuple’ object has no attribute ’remove’
>>> set([’a’,’b’,’c’])
{’a’, ’c’, ’b’}
>>> set([’a’,’b’,’c’,’c’])
{’a’, ’c’, ’b’}
>>> engineers=set([’Juan’,’Maria’,’Jonas’,’Andres’])
>>> programmers=set([’Jonas’,’Samuel’,’Susana’,’Andres’])
>>> managers=set([’Maria’,’Jonas’,’Susana’,’Pedro’])
>>> employees=engineers|programmers|managers
>>> employees
{’Juan’, ’Jonas’, ’Susana’, ’Andres’, ’Maria’, ’Samuel’, ’Pedro’}
>>> engineers&managers
{’Maria’, ’Jonas’}
>>> managers-engineers-programmers
{’Pedro’}
>>> engineers.add(’Marvin’)
>>> engineers
{’Maria’, ’Juan’, ’Andres’, ’Marvin’, ’Jonas’}
>>> employees.issuperset(engineers)
False
>>> employees.update(engineers)
>>> employees.issuperset(engineers)
True