Se resume en la frase que aparece en la wiki de python:
Short version: Python 2.x is legacy, Python 3.x is the present and future of the language
In [1]:
print("hello world")
Las variables actúan como contenedores para los datos. Puedes poner el dato que quieras almacenar dentro y usar el nombre de la variable siempre que quieras saber el contenido.
Las variables se definen asignándoles un nombre, el cual suele dar información del dato que contiene o que va a contener. Por ejemplo, si queremos almacenar un numero que corresponde a la edad de una persona que tiene 10 años, podemos utilizar la variable age para almacenar el numero 10.
Como contenedores, su contenido puede cambiar con solo reasignar su contenido.
In [2]:
age = 10
print(age)
In [3]:
age = "diez"
print(age)
Los datos que almacena una variable pueden ser de diferentes tipos. Vamos a ver 3 tipos básicos, los números enteros(int), con decimales(float) y las cadenas de texto(string). Como ejemplo, un int podría ser 12 o -345, un float podría ser 12.43 o -345.00 y string podría ser "soy un string" o 'Otro string'.
In [4]:
# int
a = 2
b = 4
print(a + b)
In [5]:
print(type(a))
In [6]:
# float
a = 2
b = 4.52
print(a + b)
In [7]:
print(type(b))
In [8]:
#from float to int
a = 2
b = 4.52
print(a + int(b))
In [9]:
#string
a = "2"
b = "4"
print(a + b)
In [10]:
print(type(b))
In [11]:
a = "2"
b = "4"
c = 3
a + b + c
In [12]:
a = "2"
b = "4"
c = 3
print(a + b + str(c))
In [13]:
print(int(a) + float(b) + c)
In [14]:
a = "2"
b = 3
a * b
Out[14]:
Como hemos visto antes, se puede hacer operaciones con diferentes tipos de datos. Vamos a ver los diferentes operadores aritméticos que existen en Python3.
In [15]:
print (3 + 4)
In [16]:
print (3 - 4)
In [17]:
print (3 * 4)
In [18]:
print (3 / 4)
In [19]:
print (3 % 2)
In [20]:
print (3 ** 2) # 3^2
In [21]:
print (3 // 4) # floor division
In [22]:
a = 0
a += 2 #a = a + 2
print(a)
In [23]:
a //= 4 #a = a // 4
print(a)
Además de los operadores aritméticos, existen operadores lógicos. Vamos a ver los diferentes operadores lógicos que existen en Python3.
In [24]:
print(1 == 0)
In [25]:
print(1 > 0)
In [26]:
print(1 < 0)
In [27]:
print(1 <= 0)
In [28]:
print(1 >= 0)
También podemos hacer operaciones lógicas con los operadores and, or, not o utilizando True o False para comparar.
In [29]:
print(1 == 3.4 and "a" == 32)
In [30]:
print(1 == 3.4 or 1)
In [31]:
print(False == True)
In [32]:
print(23 == True)
In [33]:
print((1 == 3.4) == False)
In [34]:
print(not (1 == 3.4))
In [35]:
a = 3
if a > 2:
print("a > 2")
else:
print("a <= 2")
In [36]:
a = 1
if a > 2:
print("a > 2")
else:
print("a <= 2")
In [37]:
a = -3
if a >= 2:
print("a => 2")
elif a <= 0:
print("a <= 0")
else:
print("0 < a < 2")
In [38]:
a = 1
if a >= 2:
print("a => 2")
elif a <= 0:
print("a <= 0")
else:
print("0 < a < 2")
In [39]:
for a in range(4):
print(a)
#range(4)=0,1,2,3
In [40]:
for a in range(1, 4):
print(a)
#range(1, 4)=0,1,2,3
In [41]:
a = 0
while a < 4:
print (a)
a += 4
In [42]:
def hello():
print("hello world")
hello()
In [43]:
def printer(a):
print(a)
a = "hello world"
printer(a)
In [44]:
printer(4)
In [45]:
def add(a, b):
return a + b
c = add(1, 3)
print(c)
In [46]:
def add(a, b):
result = a + b
return result
d = add(1, 3)
print(d)
In [47]:
print(result) #Scope error
In [48]:
def suma(a, b):
c = a + b
d = a - b
return c, d
e, f = suma(2, 4)
print(e, f)
Las listas y las tuplas son vectores iterables de elementos. Esto quiere decir que puede contener de 0 a n elementos y que se puede recorrer el contenido de la lista o la tupla preguntando que hay dentro o modificando su contenido. Se pueden almacenar como una variable más.
Un string una secuencia ordenada de longitud arbitraria de caracteres. Funciona igual que una tupla a efectos de iterar sobre sus elementos.
In [49]:
sampleList = [1,2,3,4,5,6,7,8]
print (sampleList[1])
In [50]:
sampleList = [1,2,3,4,5,6,7,8]
for a in sampleList:
print(a)
In [51]:
sampleTuple = (1,2,3,4,5,6,7,8)
for a in sampleList:
print(a)
In [52]:
myList = [1,2,3]
myList.append(4)
In [53]:
myTuple = (1,2,3)
myTuple.append(4)
In [54]:
a = "Monty Python"
print(a[6:10])
In [55]:
print(a[-12:-7])
In [56]:
print(a[2:])
In [57]:
print(a[:])
In [58]:
print(a)
In [59]:
print('Num %s' % 123.44)
In [60]:
print('Num %i' % 123.44)
In [61]:
print('Num %f' % 123.44)
In [62]:
print("Num %.2f" % 123.444)
In [63]:
a = "abcdefghijklmnopqrstu"
print('%.10s' % a)
In [64]:
a = "strings".replace("s", "S")
print(a)
In [65]:
print(a.startswith("St"))
In [66]:
print(a.endswith("ngs"))
Un diccionario es una colección de pares de datos con una relación de clave y valor.
Cada dato dentro de un diccionario tiene una clave asociada, con la que puede ser recuperado.
In [67]:
myDict = {"foo": 2,
"bar": 20}
print(myDict ["bar"])
In [68]:
myDict = {"foo": 2,
"bar": 20}
for a in myDict:
print (a, myDict[a])
In [69]:
for a, b in myDict.items():
print (a, b)
In [70]:
for a in myDict.values():
print (a)
In [71]:
myDict = {"David": {'edad': 26,
'sexo': 'H'},
"Rita": {'edad': 24,
'sexo': 'M'}}
for a in myDict:
print (a)
for b in myDict[a]:
print (b, myDict[a][b])
hello.txt
Hola a todos,
soy un texto de prueba
para aprender como Python 3
manipula ficheros.
In [72]:
f = open('hello.txt', 'r')
print(f.read(1))
print('-' * 10)
print(f.read())
f.close()
In [73]:
f = open('hello.txt', 'r')
print(f.readline())
print('-' * 10)
print(f.readline())
f.close()
In [74]:
f = open('hello.txt', 'r')
myList = []
for line in f:
myList.append(line)
print(myList)
f.close()
In [75]:
with open('hello.txt', 'r') as f:
myList = []
for line in f:
myList.append(line)
print(myList)
In [76]:
name = input("What is your name? ")
age = int(input("How old are you? "))
print ("%s, %s " % (name, age))
Interrupciones del flujo normal de ejecución de cualquier programa debido a un error.
In [77]:
var = '1'
try:
var = var + 1
except:
print("ERROR")
print(var)
In [78]:
var = '1'
try:
var = var + 1
except:
var = int(var) + 1
print(var)
In [79]:
var = '1'
try:
var = var + 1
except TypeError as e:
# e.message in python 2
print("ERROR: %s" % e)
finally:
print(var)
In [80]:
def add_one(var):
try:
var += 1
except TypeError as e:
print("ERROR: %s" % e)
raise TypeError("TypeError: %s" % e)
finally:
print("var value: %s" % var)
print("All correct")
add_one(1)
In [81]:
try:
add_one("1")
except TypeError as e:
print(e)
Una clase es una plantilla para la creación de objetos de datos según un modelo predefinido. Las clases se utilizan para representar entidades o conceptos.
In [82]:
class Counter(object):
def __init__(self):
self.current = 0
def add(self, amount):
self.current += amount
def getCurrent(self):
return self.current
myCounter = Counter()
myCounter.add(7)
a = myCounter.getCurrent()
print(a)
In [83]:
print(myCounter.current)
In [84]:
class Counter(object):
def __init__(self, num):
self.current = num
def add(self, amount):
self.current += amount
def getCurrent(self):
return self.current
myCounter = Counter(5)
print(myCounter.current)
In [85]:
try:
myCounter = Counter()
except Exception as e:
print(e)
In [86]:
class Counter(object):
def __init__(self, num=0):
self.current = num
def add(self, amount):
self.current += amount
def getCurrent(self):
return self.current
myCounter = Counter()
print(myCounter.current)
In [87]:
myCounter = Counter(5)
print(myCounter.current)
In [88]:
class Counter(object):
def __init__(self, num=0):
self.current = num
def add(self, amount):
self.current += amount
def getCurrent(self):
return self.current
class FullCounter(Counter):
def remove(self, amount):
self.current -= amount
myFullCounter = FullCounter(1)
myFullCounter.add(7)
a = myFullCounter.getCurrent()
print(a)
In [89]:
myFullCounter.remove(9)
a = myCounter.getCurrent()
print(a)
In [90]:
PI = 3.1416
class Figure(object):
def __init__(self, name):
self.name = name
self.area = 0
def print_area(self):
print(self.area)
def calculate_area(self):
raise Exception("Define me!")
In [91]:
class Circle(Figure):
def __init__(self, radio, name='Circle'):
self.radio = radio
super(Circle, self).__init__(name)
def print_name(self):
print(self.name)
In [92]:
a = Circle(2)
a.print_name()
a.calculate_area()
a.print_area()
In [93]:
class Circle(Figure):
def __init__(self, radio, name='Circle'):
self.radio = radio
super(Circle, self).__init__(name)
def print_name(self):
print(self.name)
def calculate_area(self):
self.area = PI * (self.radio ** 2)
In [94]:
a = Circle(2)
a.print_name()
a.calculate_area()
a.print_area()
In [95]:
class Square(Figure):
def __init__(self, side1, side2, name='Square'):
self.side1 = side1
self.side2 = side2
super(Square, self).__init__(name)
def print_name(self):
print(self.name)
def calculate_area(self):
self.area = self.side1 * self.side2
In [96]:
a = Square(2, 8)
a.print_name()
a.calculate_area()
a.print_area()
Crear un script que sea capaz de almacenar, leer y escribir en un fichero tu lista de películas preferidas con una valoración y una descripción.
Se tiene que transformar en un diccionario para tratar con los datos durante la ejecución del programa.
TITLE: titulo
STARS: 3
DESCRIPTION: una descripción de la película
que puede estar en diferentes líneas.
TITLE: otro titulo
STARS: 2
DESCRIPTION: una descripción de la película
que puede estar en diferentes líneas.
my_movies={'titulo':{'stars': 3,
'description':'una descripción de la película\nque puede estar en diferentes líneas.\n'},
'otro titulo':{'stars': 2,
'description':'una descripción de la película\nque puede estar en diferentes líneas.\n'}
}