lunes, 5 de agosto de 2019

Extraer información de teléfono con Python

Extraer información de un teléfono con Python

Muchas veces nos preguntamos: "¿De que parte del universo sera esté teléfono?", incluso si ya sabemos donde queda, pero no sabemos que operadora. Déjame decirte que en este pequeño tutorial te voy a enseñar como extraer información de un teléfono por medio de una API con Python.

Para el uso de la API es necesario registrarse en "numverify", sin embargo, tenemos a la suerte de nuestro lado "ES GRATIS!", con limitaciones, por supuesto; No podrás usar más de 250 veces. ¿Eso es un problema?, NO!, mayormente solo la usaremos para extraer algunos números de teléfonos o pruebas, así que no se preocupen.

Una vez registrados, en la página de inicio en nuestra sesión, nos mostrara nuestra clave de API. La copiaremos y usaremos la siguiente sintaxis:
http://apilayer.net/api/validate?access_key=<Nuestra clave de API>&number=<Número de teléfono>&country_code&format=1
 Incluso si no eres de este planeta o de está realidad alterna y, no tienes Python instalado en tu sistema; Usa simplemente tu navegador!.

A lo que vinimos, esta vez usemos la librería "requests", para hacer una petición a la API y manipular los datos con facilidad.
# -*- coding: UTF-8

import requests

# Información

api_key = 'Aquí su Clave de la API'
number = 'Aquí el número de teléfono'

# Petición

data = requests.get("http://apilayer.net/api/validate?access_key=%s&number=%s&country_code&format=1" % (api_key, number))

for key, value in data.json().items():

    print("%s: %s" % (key, value))
Con eso será suficiente para que puedan ver una dosis de información de un teléfono en especifico. Espero les sea de utilidad y que disfruten programando en cualquier lenguaje, me despido.

- DtxdF
Seguir Leyendo

martes, 23 de julio de 2019

Tutorial como enviar correos con el estilo de Edward Snowden en Python (Parte 2)

Tutorial como enviar correos con el estilo de Edward Snowden en Python (Parte 2)


En la parte uno (1) nos quedamos boquiabiertos con la facilidad en la que se podían cifrar datos usando python junto GnuPG ahora venimos con la segunda (2) parte para aclarar más métodos que nos brinda este herramienta y para un extra enviaremos el mensaje cifrado a nuestra propia bandeja de entrada.

En algunas entradas de este blog ya se abarco sobre como enviar un mensaje por correo electrónico a través de python, sin embargo yo les quiero facilitar el trabajo. Me tome la molestia de crearles un modulo que no solo lo pueden usar para este ejemplo sino también para sus script's/programas propios.

El modulo lo pueden encontrar en mi repositorio de Github: "floppy - (https://github.com/DtxdF/floppy)".

Comencemos ...


Primero lo primero, descarguemos Floppy:

git clone https://github.com/DtxdF/floppy.git o Si no tenemos Git instalado descarguemos el zip entrando directamente desde nuestro navegador

Acedemos:

cd floppy

Ejecutamos python e importemos lo que necesitamos:

python

# -*- coding: UTF-8 -*-

import gnupg, floppy

# Ajustamos las variables:

gpg = gnupg.GPG()

# Variables de GnuPG

recipient = 'correo@dominio' # Recuerden una de las maneras para identificar las llaves de GnuPG es con la dirección del correo pero que tenemos importada en GnuPG, NO! la del correo electronico

# Variables relacionadas con el cliente

mensaje = 'Aquí iría tu mensaje'
mensaje = str(gpg.encrypt(mensaje, recipient).data)
asunto = 'Aquí nuestro asunto '
destinatario = 'correodeldestinatario@dominio.com' # En este caso como es una practica usemos el nuestro

# Variables para loguearnos y del servidor

email = 'nuestrocorreo@dominio.com'
passwd = 'nuestra contraseña'
smtp_server = 'el servidor SMTP que usaremos' # Si tienen una cuenta de GMAIL use: "smtp.gmail.com"
smtp_port = Puerto # Atentos!, el valor debe ser tipo entero (osea un número o en python int). En GMAIL es 587

smtp = floppy.smtp_interact(email, passwd, smtp_server, smtp_port)
smtp.connect()
smtp.login()
smtp.add_message(mensaje)
smtp.sendmail(destinatario, asunto)
smtp.close()

print("Hecho!")

Verifiquemos nuestra bandeja de entrada ...



Métodos de GnuPG

 Tal vez te preguntes "'¿Para esto nos emocionaste?", NO!, no solo para eso, también quiero que sepan los demás métodos de GnuPG para que aprovechen todo el potencial y puedan crear sus propios programas/script's de una forma eficaz.

Como ven ya hemos aprendido dos cosas: 1.- Cifrar datos; 2.- Enviarlo por correo electrónico; ¿Porque no aprender hasta tres cosas?:

Antes de continuar hay que aclarar:
  • data: Los datos/string/mensaje a usar
  • passphrase: Frase de contraseña
  • verify: Permite verificar datos en caso de un intento de suplantación o modificación involuntaria
  • amor: Permite imprimir/almacenar los datos en un formato legitimo
  • symmetric: Cifrar los datos con un algoritmo de cifrado simetrico (El cifrado simétrico quiere decir que hay solo una contraseña para cifrar y descrifrar, contrario al caso de asimétrico)
  • always_trust: Siempre confía en que es una identidad legitima, ya que es interesante como GnuPG tiene algo llamado un circulo de confianza que aumenta cada vez que agreguemos y verifiquemos una nueva llave
  • sign: Permite firmar los datos
  • recipient: El identificador de la clave pública de GnuPG
  • keyid: Prácticamente igual que recipients, solo que este acepta el identificador/id de la clave pública siendo este no un correo electrónico y se usa en otros métodos de GnuPG que ya les mencionare.
  • secret: En algunos métodos que veremos necesitamos acceder a las llaves secretas
  • expect_passphrase: En caso de que quieras exportar claves secretas es necesario que uses el parámetro passphrase, con este método puedes especificar si se requiere que se introduzca o no la frase de contraseña

import gnupg

gpg = gnupg.GPG()

Cifrar/Descifrar

gpg.encrypt(data=str, recipients=str, **kwargs)

o

gpg.encrypt(data=str, recipients=str, passphrase=str, sign=bool, symmetric=bool)

Nota: El parámetro passphrase se usa cuando el parámetro symmetric o sign le pasamos como argumento True
gpg.decrypt(message=str, **kwargs)

o

gpg.decrypt(message=str, passphrase=str, verify=bool, always_trust=bool)

Firmar/Verificar:

gpg.sign(message=str, **kwargs)

o

gpg.sign(message=str, keyid=str, passphrase=str)

Para verificar el mensaje firmado:

gpg.verify(data=str, **kwargs)

o

gpg.verify(data=str, keyid=str, passphrase=str)

Exportar/Importar:

gpg.export_keys(keyids=str, secret=bool, armor=bool, minimal=bool, passphrase=str, expect_passphrase=bool)

o

gpg.import_keys(key_data=str)

Fin ...

Quiero que experimenten, que se sumerjan en los sombríos y truculentos métodos y atributos que nos ofrece GnuPG. Usen la función dir(...) y help(...) como sus mejores amigos; Si requieren un tercer mejor amigo seré yo, pero tienen que comentármelo y por último si quieren una tercera (3) parte les enseñare como usar Tor en su cliente pero nuevamente les digo, déjenme su comentario para saberlo y preparar otra entrada.

Si necesitan leer más acerca del binario GPG, pueden hacer con la documentación en español: "GPG - (https://gnupg.org/gph/es/manual.html)

Seguir Leyendo

sábado, 20 de julio de 2019

Tutorial como enviar correos con el estilo de Edward Snowden en Python (Parte 1)

Tutorial como enviar correos con el estilo de Edward Snowden en Python (Parte 1)


Muchas veces hemos escuchado o leído en la red de redes, casos inimaginables sobre personas que se atreven a sacrificar parte de su vida solo para que nosotros podamos ver la verdad. Verdad que por el control total de empresas poderosas o agencias gubernamentales nos frenan a que podamos percibirla.

En esta entrada te hablare de una persona y un método que uso para enviar un correo electrónico a su confidente:


Ese mis queridos lectores es "Edward Snowden", un consultor tecnológico estadounidense, informante, antiguo empleado de la CIA (Agencia Central de Inteligencia) y de la NSA (Agencia de Seguridad Nacional).

Famoso por que en junio de 2013, Snowden hizo públicos, a través de los periódicos The Guardian y The Washington Post, documentos clasificados como alto secreto sobre varios programas de la NSA, incluyendo los programas de vigilancia masiva PRISM y XKeyscore.

En esta entrada yo les quiero enseñar un método que uso Snowden para que no pudieran leer los mensajes de correo electrónico pero usando el todopoderoso lenguaje de la serpiente "Python".

GNUPG (GNU Privacy Guard)

Es una herramienta de cifrado y firmas digitales desarrollado por Werner Koch, que viene a ser un reemplazo del PGP (Pretty Good Privacy) pero con la principal diferencia que es software libre licenciado bajo la GPL. GPG utiliza el estándar del IETF denominado OpenPGP.

Esta herramienta nos servira para poder tener confidencialidad punto a punto, lo que quiere decir es que los únicos que podrán ser lectores de los mensajes, son el receptor y transmisor.

Sistema de clave pública o asimétrico

No pudiera morir en paz si no les explicara esto ya que es necesario para que entiendan GPG. La criptografía asimétrica también llamada criptografía de clave pública o criptografía de dos claves, es el método criptográfico que usa un par de claves para el envío de mensajes. Las dos claves pertenecen a la misma persona que recibirá el mensaje. Una clave es pública y se puede entregar a cualquier persona, la otra clave es privada y el propietario debe guardarla de modo que nadie tenga acceso a ella. Además, los métodos criptográficos garantizan que esa pareja de claves sólo se puede generar una vez, de modo que se puede asumir que no es posible que dos personas hayan obtenido casualmente la misma pareja de claves.

Un ejemplo típico que se encuentra en internet pero es muy bueno para aclarar es el siguiente: Imagina que tienes un caja fuerte abierta que te envío tu amigo Josef, en esa caja tu introducirás y cerraras con un mensaje que contenga "Hola!", lo envías por un bote para que le llege a Josef, este lo abre y lo lee. El único que conoce la combinación de la cerradura es Josef por lo tanto el único que puede ver el contenido.

Que empiece el juego ...


Ahora si como dice el titulo de la entrada les mostrare como enviar mensajes por correo electrónico, aunque debo aclarar que esto es algo más que un simple envío por correo, ya que podrás hacerlo hasta usando los principales medios de comunicación.

Un resumen de toda la explicación es que necesitaremos:


  1. Dos claves: Una Pública y Una Privada
  2. Pública: Se la envías a el que quieras que te envíe un mensaje cifrado
  3. Privada: La tendrás y nunca la revelaras
  4. Necesitamos la clave pública de la persona que queremos enviar el mensaje. En mi caso y también en el tuyo para este ejemplo usa tu misma clave pública

Instalación:

Quiero aclarar que puede funcionar en "Windows", pero es recomendable usar cygwin o WSL (Windows Sub-System for Linux), ya que si usamos e instalamos GNUPG desde python en Windows tendremos errores por parte de la aplicación:

# Primero instalamos GNUPG en nuestra distribución/Sistema operativo y luego lo instalamos para python

sudo apt-get install gpg
sudo pip install python-gnupg

# Generamos nuestras llaves. En este paso nos mostrara información que tenemos que rellenar, como correo electrónico (No es necesario que coloques el de gmail, hotmail, etc; puede ser uno inventado pero procura que sea único o poco conocido), nombre y apellido, comentarios, etc.

gpg --gen-key
...

# Ejecutamos python y empezamos a usarlo

from gnupg import GPG # Importamos el modulo
gpg = GPG() # Como esto es manejado por objetos creamos una variable llamada gpg y empezamos a escribir y usar sus atributos, metodos, etc
dato = 'Hola!, soy un mensaje que sera cifrado :D ...' # Creamos una variable que contendrá el dato a cifrar
encrypted = gpg.encrypt(dato, "prueba@ejemplo.org") # Creamos una variable llamada encrypted que cifrara la variable dato usando como destinatario prueba@ejemplo.org. Tengo que aclarar que es una dirección de prueba a la que se la quieren enviar
print(encrypted.data) # Usamos el atributo de la instancia para poder leer el dato cifrado. verán que les mostrara un mensaje ilegible
decrypted = gpg.decrypt(encrypted.data, "1234567890abc") # Ahora supongamos que somos el receptor del mensaje. Colocaremos como primer argumento el dato cifrado que nos enviaron por correo y segundo parámetro la clave de descifrado
print(encrypted.data) # Imprimimos el dato
print(encrypted.data == dato) # Comparamos si el dato decifrado es igual a la variable dato

Imágenes:



Espero les guste, mientras se familiarizan con la criptografia asimétrica, háganme comentarios si desean una segunda parte donde comenzaremos a crear nuestro cliente de correo electrónico con cifrado asimétrico y veremos a fondo lo que nos trae GPG usando solamente python (Como generar claves desde python, firmar datos, entre otros).

- DtxdF
Seguir Leyendo

lunes, 6 de mayo de 2019

Numpy en Python

Numpy in python.md
Hi! A terminar lo que empecé. Hace algunos años empecé este tutorial y vaya que ahora tenemos python 3.7.3. Por varias circunstancias lo deje inconcluso, sin que cada cierto tiempo tenga el deseo de terminarlo. Y hoy, por fin estas leyendo la entrada 1/3 :) . Como parte de esta primera entrada, estaremos viendo que es numpy, como instalarlo, algunos ejemplos y porque es muy importante (¡Spoiler Alert! : Ciencia de Datos!).

¿Qué es Numpy?

Resumiendo lo que podemos encontrar en el sitio oficial de Numpy , wikipedia, blogs, etc. Numpy es el paquete más básico pero poderoso para la computación científica y la manipulación de datos en Python. Nos permite trabajar con matrices y matrices multidimensionales.

La mayoría de las otras bibliotecas que se usan en el análisis de datos con Python, como scikit-learn , SciPy y Pandas usan algunas de las características de NumPy :o

Como empezar

Para comenzar a utilizar en nuestros proyectos numpy es necesario importar, así como aquellos tiempos en los que estábamos aprendiendo a utilizar la librería random.
La forma más simple de importar
import numpy
La forma más usada, y la que utilizaremos en los ejercicios
import numpy as np
Las dos sentencias hacen lo mismo, la diferencia es que la última se le añade un “alias” para escribir menos. Por ejemplo, si usamos la primera opción tendrás que escribir numpy como prefijo a todas las propiedades
a=numpy.array([i for i in range(6)]
Verdad que es mucho mejor así:
a=np.array([i for i in range(6)]

Sintaxis Básicas

Para entender el poder de esta librería, nos vamos a valer de nuestras aliadas Listas, que te había explicado que eran como cajitas que contenían información, bueno pues los arreglos (vectores) son listas de una o más dimensiones donde sus elementos son del mismo tipo (usualmente numérico). Si bien, en la entrada de listas usamos listas dentro de listas, en realidad eso era un arreglo de dos dimensiones. Y los arreglos de dos dimensiones lo llamamos Matrices

Arreglo de una dimensión
a=np.array([10,20,30])
Arreglo de dos dimensiones (matrices)
b=np.array([[10,20,30],[40,50,60]])
Como en las matemáticas, una matriz debe tener el mismo número de columnas.
Como los arreglos son listas, es lógico que comienzan a contarse desde el índice 0
a[0]=10
b[0][0]=10

Como instalar

Para comenzar a utilizar esta interesante librería tenemos varios caminos, en esta ocasión te mostraré dos formas:

Pycharm

Para instalar desde nuestro IDE, basta con ejecutar los siguientes pasos:
Al dar click en (+) se abrirá una ventana donde podemos instalar librerías, es allí donde seleccionaremos numpy



Cuando acabe la instalación Pycharm nos mostrará el siguiente mensaje, la librería se está instalando…

Consola (Pip - install numpy)

Si quieres echarle mano a la consola negra, esta opción es para ti. Los pasos son igual de sencillos.
  1. Abrimos la consola cmd (símbolo del sistema)
  2. Digitamos pip install numpy e inmeditamante nos cargará una barra de instalación
Y para el lector del futuro, actualizamos la versión con tan solo:
python -m pip install --upgrade pip

¡A practicar!

1.- crear una matriz 3x3 con con números aleatorios
a = np.arange(0, 9).reshape(3, 3) 
2.- arreglo con números aleatorios del 1 al 9 de dos en dos
x = np.arange(1, 10, 2)
3.- suma del arreglo x
suma = np.sum(x) 
4.- matriz identidad de 3x3
y = np.identity(3)
5.- matriz a la potencia 3
z =  3**x 
6.- convierto dos array en una matriz 2x2
f = np.array([[1, 2, 3], [2, 3, 4]]) 
7.- Ejercicios pythondiario

Recomendaciones

Numpy es una librería inmesa, se ha utilizado juntamente con Scipy en proyectos muy importantes de Maching Learning. Por ello, dejo a los expertos que planteen estos 100 ejercicios, con estadística y todo.
Seguir Leyendo

viernes, 1 de marzo de 2019

Métodos File en Python: Creación y manipulación de archivos de texto

Hola amigos de Internet. Mi nombre es Luis y les doy la bienvenida a Mi Diario Python.
En el articulo de hoy veremos los métodos file de Python para crear y manejar archivos de texto.
Sin más preámbulos, comencemos.

Abriendo archivos

Comencemos por lo más básico. Abrir un archivo.
Para ello utilizaremos el objeto open(). El cual podemos utilizar de la siguiente manera.
>>> archivo = open("Nombre del archivo.txt")
Solo llamamos al objeto open() y le pasamos como argumento la ruta del archivo.
También podemos llamar al objeto en contexto.
>>> with open("Nombre del archivo.txt") as f:
...  
El objeto open() toma otro valor como argumento. este valor seria el modo de apertura del archivo.
Los modos de apertura son los siguientes:
  • Modo de sólo lectura (r): Como lo dice el nombre, el modo r abre los archivos para solo leerlos. Por lo que no nos dejara modificarlo.
>>> modo_lectura = open("Nombre del archivo.txt", "r")
  • Modo de sólo escritura (w): El modo w solo nos permitirá escribir en el archivo. De no existir, el archivo se creara.
>>> modo_escritura = open("Nombre del archivo.txt", "w")
  • Modo sólo escritura posicionándose al final del archivo (a): Este modo de apertura, crea el archivo si no existe. Pero en caso de que si exista, el contenido se agregara al final del archivo.
>>> escritura_al_final = open("Nombre del archivo.txt", "a")

Método read()

El método read() devuelve el contenido del archivo.
Veamos un ejemplo. Tengo un archivo llamado La Informática.txt en el cual tengo un pequeño texto sobre la informática.
>>> with open("La Informática.txt", "r") as archivo:
...     print(archivo.read())
...
La Informática nace bajo la idea de ayudar al hombre en aquellos cálculos rutinarios,
 donde frecuentemente existe una repetición de tareas.
Desde cálculos aritméticos (suma, resta, multiplicación, división), hasta el minado y
 procesamiento de grandes cantidades de datos.
Existen diversos conceptos de Informática. Pero nos quedaremos con el siguiente:

Las Ciencias de la Computación o Informática, como se le llama en
algunos países hispanoamericanos, es la disciplina que busca
establecer una base científica para diversos temas, como el diseño de
computadoras, la programación de computadoras, el proceso de
información, la elaboración de algoritmos para resolver problemas y el
proceso algorítmico en sí.
Al método read() podemos agregarle un argumento. El número de caracteres que queremos leer. Como pueden ver el contenido es algo largo. Supongamos que queremos leer solo los primeros 100 caracteres del archivo (incluyendo espacios):
>>> with open("La Informática.txt", "r") as archivo:
...     print(archivo.read(100))
...
La Informática nace bajo la idea de ayudar al hombre en aquellos cálculos rutinarios,
 donde frecuent

Método readline()

El método readline() realiza la lectura una linea a la vez.
Veamos un ejemplo:
>>> with open("La Informática.txt", "r") as archivo:
...     print(archivo.readline())
...     print(archivo.readline())
...     print(archivo.readline())
...
La Informática nace bajo la idea de ayudar al hombre en aquellos cálculos rutinarios,
 donde frecuentemente existe una repetición de tareas.

Desde cálculos aritméticos (suma, resta, multiplicación, división), hasta el minado y
 procesamiento de grandes cantidades de datos.

Existen diversos conceptos de Informática. Pero nos quedaremos con el siguiente:
Como pueden observar, cada vez que llamaos al método, me devuelve una linea del archivo.

Métodos readlines()

El método readlines() devuelve una lista con todas las lineas del archivo. Veamos un ejemplo:
>>> with open("La Informática.txt", "r") as archivo:
...     print(archivo.readlines())
...
['La Informática nace bajo la idea de ayudar al hombre en aquellos cálculos rutinario
s, donde frecuentemente existe una repetición de tareas. \n', 'Desde cálculos aritmét
icos (suma, resta, multiplicación, división), hasta el minado y procesamiento de gran
des cantidades de datos.\n', 'Existen diversos conceptos de Informática. Pero nos que
daremos con el siguiente:\n', '\n', 'Las Ciencias de la Computación o Informática, co
mo se le llama en\n', 'algunos países hispanoamericanos, es la disciplina que busca\n
', 'establecer una base científica para diversos temas, como el diseño de\n', 'comput
adoras, la programación de computadoras, el proceso de\n', 'información, la elaboraci
ón de algoritmos para resolver problemas y el\n', 'proceso algorítmico en sí.']
Como pueden observar, las lineas se separan con \n, lo que significa un salto de linea.
Muy bien, ya sabemos leer. Es hora de aprender a escribir.

Método write()

El método write() (como habrás adivinado) nos permite escribir en un archivo.
Veamos un ejemplo:
>>> with open("Mi Diario Python.txt", "w") as archivo:
...     archivo.write("Mi Diario Python, el mejor blog sobre programación con Python.")
...
62
El archivo Mi Diario Python.txt se creara automáticamente con el texto que he escrito en el.

Método writelines([lines])

El método writelines() hace lo contrario de readlines(). En vez de esperar una lista de lineas. Nosotros creamos esa lista con lineas para luego escribirlas en el archivo.
Veamos un ejemplo:
>>> caracteristicas = ["-Ejercicios de Porgramación", "-Tutoriales", "-Libros", "-Videos", "-Y mucho más"]
>>> with open("Mi Diario Python.txt", "w") as archivo:
...     archivo.writelines(caracteristicas)
...
Ahora te invito a probar tus conocimientos y leer estos archivos creados desde el interprete de Python.
¿Alguna duda? ¿Alguna sugerencia? Déjanos tu comentario y con mucho gusto te responderemos.
Sin más nada que decir. Mi nombre es Luis, y fue un placer compartir mis conocimientos con todos ustedes :D.
Seguir Leyendo

domingo, 24 de febrero de 2019

5 minutos o menos: array - Arreglos eficientes de valores numéricos

“5 minutos o menos”, es una sección del blog, en la cual te enseño algo sobre Python, y que no duraras mucho en leer.
Hola amigos de Internet. Mi nombre es Luis y les doy la bienvenida a Mi Diario Python.
En el presente articulo vamos a aprender a utilizar el módulo Array para crear Arreglos eficientes de valores numéricos.
Sin más preámbulos ,comencemos.

Módulo Array

El módulo array define un tipo de objeto que puede representar de manera compacta una matriz de valores básicos: caracteres, números enteros, números de punto flotante. Las matrices son tipos de secuencia y se comportan de manera muy parecida a las listas, excepto que el tipo de objetos almacenados en ellas está restringido. El tipo se especifica en el momento de la creación del objeto utilizando un código de tipo , que es un solo carácter.
Los códigos que se utilizan para especificar el tipo de array son los siguientes:

My first array

Para crear nuestro primer array, utilizaremos el objeto array de array.
Al objeto array le pasamos como argumento el código del tipo, y, opcional, un valor de inicio.
>>> import array
>>> arr = array.array('b', b'A')
>>> print(arr)
array('b', [65])
En el código anterior, lo que hago es crear un array de tipo ‘b’ (caracter) que contiene como valor inicial b’A’, lo que significa que le estamos dando el valor en binario.
El resultado es el objeto array con el código del tipo, y una lista que tienen un elemento. Este elemento es el código ASCII del carácter. Recordemos que todos los caracteres están representados por su respectivo código ASCII.

Métodos y Datos

array.typecode

Este elemento de dato devuelve el código de tipo del array.
>>> arr.typecode
'b'

array.append(x)

Este método inserta un nuevo dato al final del array.
>>> arr.append(97)
array('b', [65, 97])

array.insert(i, x)

El método insert, inserta el nuevo elemento x en la posición i.
>>> arr.insert(45, 1)
array('b', [65, 45, 97])

array.reverse()

El método reverse invierte el orden de los elementos.
>>> arr.reverse()
array('b', [97, 45, 65])

array.remove(x)

El método remove() elimina el valor x de la matriz.
>>> arr.remove(45)
array('b', [97, 65])
¿Alguna duda? ¿Alguna sugerencia? No olvides dejar tu comentario.
Sin más nada que decir. Mi nombre es Luis y fue un placer compartir mis conocimientos con todos ustedes :D.
Seguir Leyendo
Powered by Blogger .