Blog

Aprendiendo Python 3.6 básico (III)

Más sobre listas El tipo de dato lista tiene algunos métodos más. Aquí están todos los métodos de los objetos lista:

list.append (x) :Agrega un ítem al final de la lista.

list.extend (list) : Extiende la lista agregándole todos los ítems de la lista dada.

list.insert (i, x) : Inserta un ítem en una posición dada. El primer argumento es el índice del ítem delante del cual se insertará.

list.remove (x) : Quita el primer ítem de la lista cuyo valor sea x. Es un error si no existe tal ítem.

list.pop () : Quita y  devuelve el último ítem de la lista.

list.clear () : Quita todos los elementos de la lista.

list.index (x)  :Devuelve un índice basado en cero en la lista del primer ítem cuyo valor sea x. Levanta una excepción ValueError si no existe tal ítem.

list.count (x) : Devuelve el número de veces que x aparece en la lista.

list.sort () : Ordena los ítems de la lista en sorteo.

list.reverse () :Invierte la lista.

list.copy () : Devuelve una copia superficial de la lista. Equivalente a a[:].

>>> frutas = ['naranja', 'manzana' , 'pera' , 'banana', 'kiwi', 'manzana', 'banana']
>>> frutas.count('manzana') #cuantas palabras manzanas hay
2
>>> frutas.count('mandarina') #si no hay ninguna botará 0
0
>>> frutas.index('banana') # en que orden esta la primera banana empezando de 0 
3
>>> frutas.index('banana', 4) #en que orden esta banana contando desde la posicion 4 
6
>>> frutas.reverse() # invertirá los items de la lista
>>> frutas
['banana', 'manzana', 'kiwi', 'banana', 'pera', 'manzana', 'naranja']
>>> frutas.append('uva') #se agregará uva en nuestra lista
>>> frutas
['banana', 'manzana', 'kiwi', 'banana', 'pera', 'manzana', 'naranja', 'uva']
>>> frutas.sort()
>>> frutas
['banana', 'banana', 'kiwi', 'manzana', 'manzana', 'naranja', 'pera', 'uva']
>>> frutas.pop() #quitará un item aletorio
'uva'
>>> >>> frutas.extend(frutas) #agregará la lista.
>>> frutas
['banana', 'banana', 'kiwi', 'manzana', 'manzana', 'naranja', 'pera', 'banana', 'banana', 'kiwi', 'manzana', 'manzana', 'naranja', 'pera']
>>>

Captura de pantalla de 2017-06-11 23-13-54

Usando listas como pilas

Los métodos de lista hacen que resulte muy fácil usar una lista como una pila, donde el último elemento añadido es el primer elemento retirado. Para agregar un ítem a la cima de la pila, use append(). Para retirar un ítem de la cima de la pila, use pop() sin un índice explícito. Por ejemplo:

>>> stack = [3, 4, 5 ]
>>> stack.append(6) #agregamos el 6 a la lista
>>> stack.append(7) #agregamos el 7 a la lista
>>> stack
[3, 4, 5, 6, 7]
>>> stack.pop() # aqui nos mostrará que valor quita, por default quita el ultimo 
7
>>> stack
[3, 4, 5, 6]
>>> stack.pop() # ahora por default quitará el 6
6
>>> stack.pop() # por default quitará el 5
5
>>> stack
[3, 4]

Captura de pantalla de 2017-06-11 23-29-32

 

Usando listas como colas

También es posible usar una lista como una cola, donde el primer elemento añadido es el primer elemento retirado; sin embargo, las listas no son eficientes para este propósito. Agregar y sacar del final de la lista es rápido, pero insertar o sacar del comienzo de una lista es lento (porque todos los otros elementos tienen que ser desplazados por uno). Para implementar una cola, usá collections.deque el cual fue diseñado para agregar y sacar de ambas puntas de forma rápida. Por ejemplo

>>> queue = deque (["Eric", "John", "Michael"])
>>> queue.append("Terry") # llega Terry 
>>> queue.append("Graham") # llega Graham 
>>> queue.popleft() # tiene la misma funcion de pop pero por izquierda
'Eric'
>>> queue.popleft() # ahora se va John
'John'
>>> queue
deque(['Michael', 'Terry', 'Graham'])
>>>

Captura de pantalla de 2017-06-11 23-47-59

Comprensión de listas

Las comprensiones de listas ofrecen una manera concisa de crear listas. Sus usos comunes son para hacer nuevas listas donde cada elemento es el resultado de algunas operaciones aplicadas a cada miembro de otra secuencia, hay diferentes formas de crear una lista ahora veremos una de cuadrados:

 >>> cuadrados = [] #primera forma de crear una lista
>>> for x in range(10):
... cuadrados.append(x**2)
... 
>>> cuadrados
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
>>> cuadrdos = list(map(lambda x: x**2, range(10))) #segunda forma
>>> cuadrdos
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
>>> cuadrs = [x ** 2 for x in range(10)] #tercera forma
>>> cuadrs
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

Captura de pantalla de 2017-06-12 00-05-05

como logramos ver la tercera forma es la mas legible y mas resumida #la forma mas rápida.

 

Una lista de comprensión consiste de corchetes rodeando una expresión seguida de la declaración for y luego cero o más declaraciones for o if. El resultado será una nueva lista que sale de evaluar la expresión en el contexto de los for o if que le siguen. Por ejemplo, esta lista de comprensión combina los elementos de dos listas si no son iguales:

>>> [(x, y) for x in [1, 2, 3] for y in [3, 1, 4] if x != y]
[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]
>>> dupla = [] # es lo mismo que en lo primero
>>> for x in [1, 2, 3]:
... for y in [3,1,4]:
... if x != y:
... dupla.append((x,y))
... 
>>> dupla
[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]

Captura de pantalla de 2017-06-12 00-16-14

Notá como el orden de los for y if es el mismo en ambos pedacitos de código. Si la expresión es una tupla (como el (x, y) en el ejemplo anterior), debe estar entre paréntesis.

 

ahora veremos : filtrar, función, llamar método, creación de duplas, importar pi.

>>> vec = [-4, -2, 0, 2, 4] #creación de lista

>>> [x * 2 for x in vec] #duplicará los valores de la lista vec
[-8, -4, 0, 4, 8]

>>> [x for x in vec if x>= 0] # solo mostrará positivos
[0, 2, 4]

>>> [abs(x) for x in vec] #aplica una función a todos los elementos
[4, 2, 0, 2, 4]

>>> frutafresca = ['banana', 'fresa', 'manzana']
>>> [arma.strip() for arma in frutafresca]
['banana', 'fresa', 'manzana']

>>> [(x, x ** 2) for x in range (6)] #creación de dupla
[(0, 0), (1, 1), (2, 4), (3, 9), (4, 16), (5, 25)]

>>> vec = [[1,2,3], [4,5,6], [7,8,9]] # poner todo en una lista
>>> [num for elem in vec for num in elem]
[1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> from math import pi #importar pi
>>> [str(round(pi, i)) for i in range(1, 6)]
['3.1', '3.14', '3.142', '3.1416', '3.14159']

Captura de pantalla de 2017-06-12 00-32-40

Anuncios

Aprendiendo Python 3.6 Básico (II)

en esta ocación continuaremos con la segunda clase de python.

Lista y cadenas de caracteres 

Python tiene varios tipos de datos compuestos, usados para agrupar otros valores. El más versátil es la lista, la cual puede ser escrita como una lista de valores separados por coma (ítems) entre corchetes. Las listas pueden contener ítems de diferentes tipos, pero usualmente los ítems son del mismo tipo: 

>>> cuadrados = [1, 4, 9, 16, 25] #es para agregar los items
>>> cuadrados # buscamos cuadrados para que nos bote todos los datos
#Rpta [1, 4, 9, 16, 25] 
>>> cuadrados [0] # también se puede buscar item  específico
#Rpta 1
>>> cuadrados [-1]
#Rpta 25
>>> cuadrados [-3:]
#Rpta [9, 16, 25]
>>> cuadrados

Captura de pantalla de 2017-05-24 09-44-12

para agregar mas items  a tu cadena haremos los siguientes pasos

>>> cuadrados + [36, 49, 64, 81, 100]
#Rpta [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

Captura de pantalla de 2017-05-24 11-30-13

también se puede cambiar el item por si ocurre un error y agregar de otra forma

>>> cubos = [1,8,27,65,125] #se puede cambiar por si ocurre un error como el 65
>>> 4 ** 3 #el cubo de 4 es 64 y no 65 
#Rpta 64
>>> cubos [3] = 64 # para cambiar solo pondremos el orden en que esta y el nuevo valor
>>> cubos
#Rpta [1, 8, 27, 64, 125]
>>> cubos.append(216) # agrega el cubo de 6
>>> cubos.append(7 ** 3) # agrega el cubo de 7 de otra forma
>>> cubos
#Rpta [1, 8, 27, 64, 125, 216, 343]
>>>

Captura de pantalla de 2017-05-24 11-34-06

para cambiar los items en cadena, borrar items o la cadena.

>>> letras = ['a',' b', 'c', 'd', 'e', 'f', 'g'] # agregar la cadena
>>> letras #para ver q hay en la lista
#Rpta ['a', ' b', 'c', 'd', 'e', 'f', 'g']
>>> letras [2:5] = ['C', 'D', 'E'] # pondremos los items 
>>> letras
#Rpta ['a', ' b', 'C', 'D', 'E', 'f', 'g']
>>> letras [2:5] = [] #para borrar le damos en vacio
>>> letras
#Rpta ['a', ' b', 'f', 'g']
>>> letras [:] = [] #para borrar toda la lista 
>>> letras
#Rpta []

Captura de pantalla de 2017-05-24 11-41-25

para ver cuantos items o caracteres hay en nuestra cadena haremos el comando “len”

>>> letras
#Rpta ['a', ' b', 'c', 'd', 'e', 'f', 'g']
>>> len(letras)
#Rpta 7
>>>

Captura de pantalla de 2017-05-24 11-53-53

Es posible anidar listas (crear listas que contengan otras listas), por ejemplo: #Rpta

>>> a = ['a', 'b', 'c'] #agregamos la primera lista
>>> n = [1, 2, 3] #agregamos la segunda lista
>>> x= [a, n] #agregamos la 3 lista que encadena las 2 anteriores
>>> x #leemos
#Rpta [['a', 'b', 'c'], [1, 2, 3]]
>>> x[0] # leerá la primera lista
#Rpta ['a', 'b', 'c']
>>> x[0][1] leerá el segundo item de la primera lista
#Rpta 'b'

Captura de pantalla de 2017-05-24 12-03-49

Primeros pasos a la programación.

empezaremos con la secuencia de fibonacci. y veremos q tan fácil es.

>>> a, b = 0, 1
>>> while b < 10:
...    print(b)
...    a, b = b, a+b
... 
1
1
2
3
5
8

Captura de pantalla de 2017-05-24 12-44-27

otra forma de hacerlo y que todo me salga en 1 linea usaremos “end”

>>> a, b = 0, 1 #agregamos las variables
>>> while b < 1000: #le diremos que el bucle solo reconozca 
... print (b, end=',')
... a,b = b, a+b
... 
1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,>>>

Captura de pantalla de 2017-05-24 12-40-56

para hacer sentencia

>>> x = int(input("Ingresa un entero: ")) #introducir una variable
#Rpta Ingresa un entero: 43 
>>> if x < 0: #le daremos una condición    # si es menor que 0
... x = 0
... print ('Negativo cambiado a cero')    #imprime 0
... elif x == 0:         #si es igual a 0
... print('Cero')        # imprime Cero
... elif x == 1:         # si es igual a 1
... print('simple')      # imprimir simple
... else:                # caso contrario imprimir Más
... print('Más')
... 
Más
>>>

Captura de pantalla de 2017-05-24 13-06-27

 

>>> palabras = ['gato', 'ventana', 'defenestrado'] #agregamos palabras
>>> for p in palabras: #hará un bucle en palabras
... print(p, len(p)) #imprimirá la palabra y la cantidad de letras
... 
gato 4
ventana 7
defenestrado 12

Captura de pantalla de 2017-05-24 13-27-09

Si necesitás modificar la secuencia sobre la que estás iterando mientras estás adentro del ciclo (por ejemplo para borrar algunos ítems), se recomienda que hagas primero una copia. Iterar sobre una secuencia no hace implícitamente una copia. La notación de rebanada es especialmente conveniente para esto:

>>> for p in palabras [:]: #hace una copia por rebanada de toda la lista
... if len(p) > 6: #condición si sus letras es mayor a 6
... palabras.insert(0, p) #insertará las palabras q cumple la condición
... 
>>> palabras 
['defenestrado', 'ventana', 'gato', 'ventana', 'defenestrado']
>>>

Captura de pantalla de 2017-05-24 13-33-57

Función

La función Si se necesita iterar sobre una secuencia de números, es apropiado utilizar la función integrada range(), la cual genera progresiones aritméticas:

>>> for i in range(5):
... print(i)
... 
0
1
2
3
4

Aprendiendo Python 3.6 Básico (I)

Definición :

Python es un lenguaje de programación interpretado cuya filosofía hace hincapié en una sintaxis que favorezca un código legible.

Se trata de un lenguaje de programación multiparadigma, ya que soporta orientación a objetos, programación imperativa y, en menor medida, programación funcional. Es un lenguaje interpretado, usa tipado dinámico y es multiplataforma.

Es administrado por la Python Software Foundation. Posee una licencia de código abierto, denominada Python Software Foundation License, que es compatible con la Licencia pública general de GNU a partir de la versión 2.1.1, e incompatible en ciertas versiones anteriores.

Historia:

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemáticas y la Informática (CWI, Centrum Wiskunde & Informatica), en los Países Bajos, como un sucesor del lenguaje de programación ABC, capaz de manejar excepciones e interactuar con el sistema operativo Amoeba.

El nombre del lenguaje proviene de la afición de su creador por los humoristas británicos Monty Python.

Van Rossum es el principal autor de Python, y su continuo rol central en decidir la dirección de Python es reconocido, refiriéndose a él como Benevolente Dictador Vitalicio (en inglés: Benevolent Dictator for Life, BDFL).

1.  Ahora que vimos un poco de historia pasaremos a ver lo primero su instalación.

$ sudo dnf install python3.6

Captura de pantalla de 2017-05-21 22-02-02

2.  Pasaremos a ver un poco de código condicional y comentario

$ tu_ciudad_es_tranquila = False
$ if tu_ciudad_es_tranquila:
$     print("puedes andar tranquila por la ciudad") 
$else:
$     print("tener cuidado en la ciudad")

Captura de pantalla de 2017-05-22 10-12-09

3. haremos ecuaciones con python 3.6 para eso debemos recordar que python lee el código de arriba a abajo.

>>> a=5 #creamos la primera variable
>>> b=7 #creamos la segunda variable
>>> c= (a+b) + (a*b) #ecuación para hallar la tercera variable
c= c+a #python lee de arriba a abajo entonces c tomará un nuevo valor
>>> c #para imprimir el resultado del nuevo c

Captura de pantalla de 2017-05-21 23-03-45

4. Ahora verémos la calculadora de python

>>> 4+4
8
>>> 50 -5*6
20
>>> (50 -5*6) / 4 # en una division automaticamente se vuelve flotante
5.0
>>> 8 / 5 # en una divisio automaticamente se vuelve en un flotante
1.6
>>> 17 // 3 #division entera que descarta los residuos
5
>>> 17 % 3 #el operador % retorna el residuo de la division
2
>>> 5 ** 2 #5 al cuadrado
25
>>> 

Captura de pantalla de 2017-05-22 10-23-29

5. cuando tratas de acceder una variable sin valor agregado nos dará error

Captura de pantalla de 2017-05-22 10-26-45

6. un pequeño ejemplo

>>> impuesto = 50 / 100
>>> precio = 100
>>> precio * impuesto
50.0
>>> precio + _ #para sumar con el nuevo resultado _
150.0

Captura de pantalla de 2017-05-22 10-30-28

7. Cadenas de caracteres

Además de números, Python puede manipular cadenas de texto, las cuales pueden ser expresadas de distintas formas. Pueden estar encerradas en comillas simples (‘…’) o dobles (“…”) con el mismo resultado . \ puede ser usado para escapar comillas: 

>> 'doesn\'t' #se una \' para escapar de comillas simples
"doesn't" #resultado
>>> "doesn't"
"doesn't" #resultado
>>> '"Si," le dijo.'
'"Si," le dijo.' #resultado
>>> "\"Si,\" le dijo."
'"Si," le dijo.' #resultado
>>> '"Isn\'t," she said.'
'"Isn\'t," she said.' #resultado

Captura de pantalla de 2017-05-22 10-42-40

8. concatenación de texto

Captura de pantalla de 2017-05-22 10-55-09

Instalación de Gimp

Instalación de Gimp

GIMP es un acrónimo de GNU Image Manipulation Program. Es un programa de distribución gratuita para tareas como retoque fotográfico, composición y creación de imagen.

gimplogos1.png

pasaremos a la instalación de Gimp con la versión actualizada

$ sudo dnf install gimp

Captura de pantalla de 2017-05-20 14-04-50

para abrir el gimp solo pondremos

$ gimp

Captura de pantalla de 2017-05-20 16-10-50

y les abrirá esta pantalla.

Captura de pantalla de 2017-05-20 16-14-20.png

aquí podrán ver desde edición de texto hasta edición de imagenes.

1.png