Traza día 1

De WikiEducator
Saltar a: navegación, buscar


# Sesión python 12 Noviembre
 
# Operaciones con números
# Cuidado con la división
>>>  5 / 2
>>> 5 / 2
2
>>> 5 / 2.
2.5
>>> import sys
>>> sys.maxint
2147483647
# Conversiones
>>> int('15')
15
>>> float(5)
5.0
# Cadenas de caracteres:
# comillas simples o dobles
>>> nombre = 'Luis'
>>> nombre = "Luis"
>>> ""
''
>>> apellido = 'Morillas'
>>> print nombre, apellido
Luis Morillas
# Concatenar con +
>>> nombre + ' ' + apellido
'Luis Morillas'
# Variables: No se declaran
>>> nc = nombre + ' ' + apellido
>>> nc
'Luis Morillas'
# Introspección
>>> dir(nc)
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_formatter_field_name_split', '_formatter_parser', 'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
# Métodos de las cadenas de caracteres
>>> nc.upper()
'LUIS MORILLAS'
>>> nc.lower()
'luis morillas'
# Strip
>>> nombre = '     luis morillas      '
>>> nombre
'     luis morillas      '
>>> nombre == 'luis morillas'
False
>>> nombre.lstrip()
'luis morillas      '
>>> nombre.rstrip()
'     luis morillas'
>>> nombre.strip()
'luis morillas'
>>> nombre
'     luis morillas      '
>>> nombre = nombre.strip()
>>> nombre
'luis morillas'
# Split: cadena --> lista de cadenas
>>> nombre.split()
['luis', 'morillas']
>>> nombre
'luis morillas'
# Extaer letra de cadena
>>> nombre[0]
'l'
# Tamaño
>>> len(nombre)
13
# Índices comienzan por 0, hasta len - 1
>>> nombre[13]
 
Traceback (most recent call last):
  File "<pyshell#43>", line 1, in <module>
    nombre[13]
IndexError: string index out of range
>>> nombre[12]
's'
>>> nombre
'luis morillas'
# Rebanadas
>>> nombre[0:4]
'luis'
>>> nombre[:4]
'luis'
>>> nombre[4:]
' morillas'
>>> nombre[5:]
'morillas'
# Índices negativos
>>> nombre[-1]
's'
>>> nombre[-2]
'a'
>>> nombre[-3]
'l'
# Leer del teclado
>>> nombre = raw_input("Escribe tu nombre: ")
Escribe tu nombre: Pedro
>>> nombre
'Pedro'
>>> sueldo = raw_input("Sueldo ")
Sueldo 1500
>>> print sueldo
1500
# raw_input lee como cadena de caracteres
>>> print sueldo * 2
15001500
>>> '*' * 20
'********************'
>>> sueldo = int(raw_input("Sueldo "))
Sueldo 1500
>>> print sueldo * 2
3000
# Comillas triples
>>> ficha  = '''Nombre: Luis
Apellido: Morillas
Ciudad: Zaragoza
'''
>>> print ficha
Nombre: Luis
Apellido: Morillas
Ciudad: Zaragoza
########################################################
# Listas
>>> listas = []
>>> type(listas)
<type 'list'>
>>> numeros = [1, 2, 4, 7, 4, 9]
>>> numeros
[1, 2, 4, 7, 4, 9]
>>> numeros.append(5)
>>> numeros
[1, 2, 4, 7, 4, 9, 5]
>>> numeros.append('luis')
>>> numeros
[1, 2, 4, 7, 4, 9, 5, 'luis']
>>> numeros.insert(1, 20)
>>> numeros
[1, 20, 2, 4, 7, 4, 9, 5, 'luis']
>>> dir(numeros)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
>>> numeros.pop()
'luis'
>>> numeros
[1, 20, 2, 4, 7, 4, 9, 5]
>>> numeros.sort()
>>> numeros
[1, 2, 4, 4, 5, 7, 9, 20]
>>> numeros.append('luis')
>>> numeros.sort()
>>> numeros
[1, 2, 4, 4, 5, 7, 9, 20, 'luis']
>>> numeros.append('ana')
>>> numeros
[1, 2, 4, 4, 5, 7, 9, 20, 'luis', 'ana']
>>> numeros.sort()
>>> numeros
[1, 2, 4, 4, 5, 7, 9, 20, 'ana', 'luis']
>>> nombres = ['Ana', 'Luis', 'bea']
>>> nombres.sort()
>>> nombres
['Ana', 'Luis', 'bea']
>>> nombres.sort(reverse=True)
>>> nombres
['bea', 'Luis', 'Ana']
>>> nombres[0]
'bea'
>>> nombres[-1]
'Ana'
>>> len(nombres)
3
########################################################
# Tuplas
>>> users = ('user1', 'user2', 'user3')
>>> users
('user1', 'user2', 'user3')
>>> users[0]
'user1'
>>> users.sort()
 
Traceback (most recent call last):
  File "<pyshell#114>", line 1, in <module>
    users.sort()
AttributeError: 'tuple' object has no attribute 'sort'
>>> nombres[-1]
'Ana'
>>>
KeyboardInterrupt
>>> nombres
['bea', 'Luis', 'Ana']
>>> nombres[-1] = 'ana'
>>> nombres
['bea', 'Luis', 'ana']
>>> users[0] = 'user10'
 
Traceback (most recent call last):
  File "<pyshell#119>", line 1, in <module>
    users[0] = 'user10'
TypeError: 'tuple' object does not support item assignment
>>> users
('user1', 'user2', 'user3')
>>> users = ('user1')
>>> users
'user1'
>>> users = ('user1',)
>>> users
('user1',)
>>> len(users)
1
###########################################################
# Diccionarios
>>> usuarios = {'user1': 10, 'user2': 5, 'user10': 15, 'user5': 6}
>>> usuarios
{'user10': 15, 'user5': 6, 'user2': 5, 'user1': 10}
>>> usuarios['user10']
15
>>> usuarios['user1']
10
>>> usuarios.keys()
['user10', 'user5', 'user2', 'user1']
>>> usuarios.values()
[15, 6, 5, 10]
>>> usuarios.items()
[('user10', 15), ('user5', 6), ('user2', 5), ('user1', 10)]
>>> usuarios['user4'] = 20
>>> usuarios['user10'] = 20
>>> usuarios
{'user10': 20, 'user4': 20, 'user5': 6, 'user2': 5, 'user1': 10}
>>> usuarios['user10'] = usuarios['user10'] + 5
>>> usuarios
{'user10': 25, 'user4': 20, 'user5': 6, 'user2': 5, 'user1': 10}
>>> del(usuarios['user10'])
>>> usuarios
{'user4': 20, 'user5': 6, 'user2': 5, 'user1': 10}
>>> usuarios['user1'] = ['luis', 'morillas', 1,2,3]
>>> usuarios
{'user4': 20, 'user5': 6, 'user2': 5, 'user1': ['luis', 'morillas', 1, 2, 3]}
>>> usuarios['user1']
['luis', 'morillas', 1, 2, 3]
>>> usuarios['user1'][0]
'luis'
>>> usuarios['user7']
 
Traceback (most recent call last):
  File "<pyshell#147>", line 1, in <module>
    usuarios['user7']
KeyError: 'user7'
# Valor por defecto (si no existe clave)
>>> usuarios.get('user7', 'No existe')
'No existe'
# Recorrer diccionario
>>> for clave in usuarios:
	print clave, '-->', usuarios[clave]
user4 --> 20
user5 --> 6
user2 --> 5
user1 --> ['luis', 'morillas', 1, 2, 3]
>>> claves = usuarios.keys()
>>> claves
['user4', 'user5', 'user2', 'user1']
>>> claves.sort()
>>> claves
['user1', 'user2', 'user4', 'user5']
>>> for clave in claves:
	print clave, '-->', usuarios[clave]
 
 
user1 --> ['luis', 'morillas', 1, 2, 3]
user2 --> 5
user4 --> 20
user5 --> 6
# Recorre cadena
>>> for letra in 'cadena de caracteres':
	print letra
c
a
d
e
n
a
 
d
e
 
c
a
r
a
c
t
e
r
e
s
# print sin salto de línea
>>> for letra in 'cadena de caracteres':
	print letra,
c a d e n a   d e   c a r a c t e r e s
#######################################################
# Condicionales
>>> for letra in 'cadena de caracteres':
	if letra == 'a':
		print '*',
	else:
		print letra,
 
 
c * d e n *   d e   c * r * c t e r e s
>>> for letra in 'cadena de caracteres':
	if letra == 'a':
		print '*',
	elif letra == 'e':
		print 'x',
	else:
		print letra,
 
 
c * d x n *   d x   c * r * c t x r x s
##########################################################
# While
>>> valor = 5
>>> while valor < 10:
	print valor
	valor += 1
 
 
5
6
7
8
9
>>> valor
10
# Operador in
>>> vocales = 'aeiouAEIOU'
>>> 'a' in vocales
True
>>> 'b' in vocales
False
>>> lista = "4,20 2,50 3,24 2,55"
>>> lista.split()
['4,20', '2,50', '3,24', '2,55']
>>> canciones = lista.split()
>>> canciones
['4,20', '2,50', '3,24', '2,55']
>>> canciones[0]
'4,20'
>>> canciones[0].split(',')
['4', '20']
>>> minut, seg =canciones[0].split(',')
>>> minut, seg = canciones[0].split(',')
>>> minut
'4'
>>> seg
'20'
>>> int(minut)
4
>>> canciones[0]
'4,20'