Llevo 8 años programando en Python y en esta respuesta intentaré compartir mi experiencia.
Editar: TLDR:
- Aprenda los conceptos básicos de Python en: Bienvenido a Python.org
- El mejor recurso para aprender según mí: La clase magistral completa de Python: Aprenda Python desde cero.
Aquí está el contenido del curso junto con las duraciones de las secciones:
- ¿Cuál es el mejor sitio para comprar vestidos de mujer?
- ¿Qué sitio web es bueno para la ropa de camisetas para niños?
- ¿Cuáles son todos los sitios web para enumerar nuestra startup?
- ¿En qué sitio puedes conocer a muchos jóvenes cineastas independientes?
- ¿Cuáles son buenos sitios para las fórmulas de Excel?
- Paso final: crea proyectos por tu cuenta. Más de 100 ideas de proyectos se enumeran a continuación en la respuesta.
El error más común que comete un programador novato es comenzar a aprender algo de lenguaje de programación sin ningún propósito u objetivo específico en mente.
Antes de comenzar a aprender Python o cualquier lenguaje de programación, debe tener un objetivo en mente. Debería preguntarse: “¿Por qué exactamente quiero aprender Python?” Por ejemplo, es posible que desee ser un científico de datos o simplemente diseñar aplicaciones web o construir API.
Una vez que haya decidido su objetivo principal, el aprendizaje se vuelve mucho más fácil, eficiente y rápido. Ahora veamos la respuesta real:
Conceptos básicos de Python: si es completamente nuevo en Python, entonces es importante conocer la sintaxis básica. Aquí hay algunos conceptos básicos que debe tener en cuenta:
- Variables, cadenas y aceptación de entrada del usuario.
- Estructura de control en python, como la declaración if-else.
- Bucles: bucles For y while.
- Funciones y módulos, funciones integradas como Range.
- Manejo de excepciones .
- Manejo de archivos.
Temas importantes:
Una vez que se cuiden los conceptos básicos, puede pasar a otros temas importantes que se enumeran a continuación. Tenga en cuenta que estos temas son los más utilizados y se debe prestar especial atención a estos:
- Programación orientada a objetos. (Útil durante el uso de Python Framework como Django).
- Lista, tuplas y diccionarios. (Útil en el análisis de datos).
- Lista de comprensión.
- Mapa y filtro.
- Funciones lambda.
- Expresiones regulares (uno de los superpoderes de Python y ampliamente utilizado en Django).
Ahora, una vez que haya terminado con los conceptos básicos anteriores, pasemos a algunos marcos y bibliotecas de Python interesantes.
Para construir aplicaciones GUI:
- Tkinter.
- PyQt.
Crear una aplicación dinámica basada en web:
- Django (uno de mis favoritos)
- Matraz.
Análisis de los datos:
- Pandas
- Numpy
Rastreo web:
- Hermosa sopa
- Scrapy
¿Qué recursos de aprendizaje recomiendo?
Honestamente, preferiría un recurso de aprendizaje que se adapte a su estilo. Para mí, preferiría aprender a través de la documentación oficial de Python para los conceptos básicos de Python.
Aquí hay un enlace a los documentos:
Bienvenido a Python.org
Si desea una solución integral para todas sus necesidades de Python, le recomendaría este curso: La clase magistral completa de Python: Aprenda Python desde cero. He enumerado este curso porque ofrece lo prometido. Cubre los conceptos básicos de Python, la programación orientada a objetos, Tkinter, Flask, raspado web, análisis de datos con Numpy y Pandas y también tiene algunos proyectos para crear algunas aplicaciones interesantes.
Próximos pasos:
Una vez que haya completado los temas anteriores a un nivel con el que se sienta cómodo para trabajar, puede comenzar a construir sus propios proyectos.
Una cosa interesante sobre Python es que hay mucho que puedes hacer con Python.
Nota:
Aquí hay algunas ideas de proyectos enumeradas a continuación que puede probar, trataré de mantener la lista actualizada:
Números
Encuentre PI para el enésimo dígito : ingrese un número y haga que el programa genere PI hasta ese número decimal. Mantenga un límite de hasta dónde llegará el programa.
Encuentre e al enésimo dígito : al igual que el problema anterior, pero con e en lugar de PI. Ingrese un número y haga que el programa genere e hasta esa cantidad de decimales. Mantenga un límite de hasta dónde llegará el programa.
Secuencia de Fibonacci : ingrese un número y haga que el programa genere la secuencia de Fibonacci para ese número o para el enésimo número.
Factorización prima: haga que el usuario ingrese un número y encuentre todos los factores primos (si los hay) y los muestre.
Próximo número primo : haga que el programa encuentre los números primos hasta que el usuario decida dejar de pedir el siguiente.
Hallar el costo del azulejo para cubrir el ancho del piso x ancho: calcule el costo total del azulejo que se necesitaría para cubrir un plano de ancho y alto, utilizando un costo ingresado por el usuario.
Calculadora de hipotecas : calcule los pagos mensuales de una hipoteca a plazo fijo sobre términos enésimos a una tasa de interés determinada. También calcule cuánto tiempo le tomará al usuario pagar el préstamo. Para mayor complejidad, agregue una opción para que los usuarios seleccionen el intervalo de capitalización (mensual, semanal, diario, continuo).
Programa de devolución de cambios : el usuario ingresa un costo y luego la cantidad de dinero otorgada. El programa determinará el cambio y la cantidad de trimestres, monedas de diez centavos, monedas de cinco centavos, centavos necesarios para el cambio.
Convertidor binario a decimal y reverso : desarrolle un convertidor para convertir un número decimal a binario o un número binario a su equivalente decimal.
Calculadora : una calculadora simple para hacer operadores básicos. Conviértalo en una calculadora científica para mayor complejidad.
Convertidor de unidades (temp, moneda, volumen, masa y más) : convierte varias unidades entre sí. El usuario ingresa el tipo de unidad que se ingresa, el tipo de unidad a la que desea convertir y luego el valor. El programa realizará la conversión.
Reloj despertador: un reloj simple donde reproduce un sonido después de X número de minutos / segundos o en un momento determinado.
Distancia entre dos ciudades: calcula la distancia entre dos ciudades y permite al usuario especificar una unidad de distancia. Este programa puede requerir encontrar coordenadas para las ciudades como latitud y longitud.
Validador de tarjeta de crédito: toma un número de tarjeta de crédito de un proveedor común de tarjetas de crédito (Visa, MasterCard, American Express, Discoverer) y lo valida para asegurarse de que sea un número válido (vea cómo las tarjetas de crédito usan una suma de verificación).
Calculadora de impuestos: pide al usuario que ingrese un costo y un impuesto estatal o estatal. Luego devuelve el impuesto más el costo total con impuestos.
Buscador factorial: el factorial de un entero positivo, n, se define como el producto de la secuencia n, n-1, n-2, … 1 y el factorial de cero, 0, se define como 1. Resuelva esto usando ambos bucles y recursividad.
Álgebra de números complejos : muestra la suma, multiplicación, negación e inversión de números complejos en funciones separadas. (Las operaciones de resta y división se pueden hacer con pares de estas operaciones). Imprima los resultados para cada operación probada.
Números felices: el siguiente proceso define un número feliz. Comenzando con cualquier número entero positivo, reemplace el número por la suma de los cuadrados de sus dígitos y repita el proceso hasta que el número sea igual a 1 (donde permanecerá), o se repite sin parar en un ciclo que no incluye 1. Esos números para los cuales este proceso termina en 1 son números felices, mientras que aquellos que no terminan en 1 son números infelices. Muestre un ejemplo de su salida aquí. Encuentra los primeros 8 números felices.
Nombres de números: muestra cómo deletrear un número en inglés. Puede usar una implementación preexistente o rodar la suya, pero debe admitir entradas de hasta al menos un millón (o el valor máximo del tipo de entero delimitado predeterminado de su idioma, si eso es menor). Opcional: Soporte para entradas que no sean enteros positivos (como cero, enteros negativos y números de punto flotante).
Simulación de lanzamiento de moneda: escriba un código que simule lanzar una sola moneda por muchas veces que el usuario decida. El código debe registrar los resultados y contar el número de colas y cabezas.
Calculadora de límite: solicite al usuario que ingrese f (x) y el valor límite, luego devuelva el valor de la declaración de límite Opcional: haga que la calculadora sea capaz de soportar límites infinitos.
Exponenciación rápida: solicite al usuario que ingrese 2 enteros a y b y genere a ^ b (es decir, pow (a, b)) en O (lg n) complejidad de tiempo.
Algoritmos Clásicos
Conjetura de Collatz : comience con un número n> 1. Encuentre el número de pasos necesarios para llegar a uno usando el siguiente proceso: Si n es par, divídalo entre 2. Si n es impar, multiplíquelo por 3 y sume 1.
Clasificación: implemente dos tipos de algoritmos de clasificación: combinación de clasificación y clasificación de burbuja.
Problema de par más cercano: el problema de par de puntos más cercano o el problema de par más cercano es un problema de geometría computacional: dados n puntos en el espacio métrico, encuentre un par de puntos con la distancia más pequeña entre ellos.
Tamiz de Eratóstenes: el tamiz de Eratóstenes es una de las formas más eficientes de encontrar todos los números primos más pequeños (menos de 10 millones más o menos).
Grafico
Gráfico a partir de enlaces: cree un programa que creará un gráfico o una red a partir de una serie de enlaces.
Ruta de Eulerian: cree un programa que tomará como entrada un gráfico y generará una ruta de Eulerian o un ciclo de Eulerian, o indique que no es posible. Un camino de Eulerian comienza en un nodo y atraviesa cada borde de un gráfico a través de cada nodo y termina en otro nodo. Un ciclo euleriano es un camino euleriano que comienza y termina en el mismo nodo.
Gráfico conectado : cree un programa que tome un gráfico como entrada y produzca si cada nodo está conectado o no.
Algoritmo de Dijkstra: cree un programa que encuentre el camino más corto a través de un gráfico utilizando sus bordes.
Árbol de expansión mínima: cree un programa que tome un gráfico conectado y no dirigido con pesos y genere el árbol de expansión mínima del gráfico, es decir, un subgrafo que es un árbol, contiene todos los vértices, y la suma de sus pesos es lo menos posible.
Estructuras de datos
Índice invertido : un índice invertido es una estructura de datos utilizada para crear búsquedas de texto completo. Dado un conjunto de archivos de texto, implemente un programa para crear un índice invertido. También cree una interfaz de usuario para realizar una búsqueda utilizando ese índice invertido que devuelve una lista de archivos que contienen el término / términos de la consulta. El índice de búsqueda puede estar en la memoria.
Texto
Fizz Buzz : escriba un programa que imprima los números del 1 al 100. Pero para múltiplos de tres imprima “Fizz” en lugar del número y para los múltiplos de cinco imprima “Buzz”. Para números que son múltiplos de tres y cinco, imprima “FizzBuzz”.
Invertir una cadena : ingrese una cadena y el programa la invertirá e imprimirá.
Pig Latin – Pig Latin es un juego de alteraciones que se juega en el juego del idioma inglés. Para crear la forma en latín Pig de una palabra en inglés, el sonido consonante inicial se transpone al final de la palabra y se fija un ay (Ej .: “banana” produciría anana-bay). Lea Wikipedia para más información sobre reglas.
Contar vocales : ingrese una cadena y el programa cuenta el número de vocales en el texto. Para mayor complejidad, haga que informe una suma de cada vocal encontrada.
Comprobar si Palíndromo : comprueba si la cadena introducida por el usuario es un palíndromo. Es decir, se lee tanto hacia adelante como hacia atrás como “auto de carrera”
Contar palabras en una cadena : cuenta el número de palabras individuales en una cadena. Para mayor complejidad, lea estas cadenas desde un archivo de texto y genere un resumen.
Editor de texto : aplicación de estilo Bloc de notas que puede abrir, editar y guardar documentos de texto. Opcional: agregue resaltado de sintaxis y otras características.
Creador de fuentes RSS : dado un enlace a RSS / Atom Feed, obtenga todas las publicaciones y muéstrelas.
Rastreador de cotizaciones (símbolos de mercado, etc.) : un programa que puede salir y verificar el valor actual de las acciones para obtener una lista de símbolos ingresados por el usuario. El usuario puede establecer con qué frecuencia se verifican las existencias. Para CLI, muestre si la acción ha subido o bajado. Opcional: si es GUI, el programa puede mostrar flechas verdes hacia arriba y rojas hacia abajo para mostrar en qué dirección se ha movido el valor del stock.
Libro de visitas / Diario : una aplicación simple que permite a las personas agregar comentarios o escribir entradas en el diario. Puede permitir comentarios o no y marcas de tiempo para todas las entradas. También podría convertirse en una caja de gritos. Opcional: Impleméntelo en Google App Engine o Heroku o cualquier otro PaaS (si es posible, por supuesto).
Cifrados Vigenere / Vernam / Ceasar : funciones para cifrar y descifrar mensajes de datos. Luego envíalos a un amigo.
Herramienta de consulta de expresiones regulares : una herramienta que permite al usuario ingresar una cadena de texto y luego, en un control separado, ingresar un patrón de expresión regular. Ejecutará la expresión regular contra el texto fuente y devolverá cualquier coincidencia o error de marca en la expresión regular.
Redes
Programa FTP : un programa de transferencia de archivos que puede transferir archivos de un servidor web a otro.
Monitor de ancho de banda : un pequeño programa de utilidad que rastrea la cantidad de datos que ha cargado y descargado de la red durante el curso de su sesión en línea actual. Vea si puede averiguar qué períodos del día usa más y menos y genere un informe o gráfico que lo muestre.
Port Scanner: ingrese una dirección IP y un rango de puertos donde el programa intentará encontrar puertos abiertos en la computadora dada conectándose a cada uno de ellos. En cualquier conexión exitosa, marque el puerto como abierto.
Verificador de correo (POP3 / IMAP) : el usuario ingresa información de varias cuentas que incluye el servidor web y la IP, el tipo de protocolo (POP3 o IMAP) y la aplicación verificará el correo electrónico en un intervalo determinado.
País desde la búsqueda de IP : ingrese una dirección IP y busque el país en el que está registrada la IP. Opcional: busque el IP automáticamente.
Herramienta de búsqueda Whois : ingrese una dirección IP o de host y haga que la busque a través de whois y le devuelva los resultados.
Site Checker con Time Scheduling : una aplicación que intenta conectarse a un sitio web o servidor cada tantos minutos o un tiempo determinado y verificar si está activa. Si está inactivo, le notificará por correo electrónico o publicará un aviso en la pantalla.
Clases
Proyecto de inventario de productos : cree una aplicación que gestione un inventario de productos. Cree una clase de producto que tenga un precio, una identificación y una cantidad disponibles. Luego, cree una clase de inventario que realice un seguimiento de varios productos y pueda resumir el valor del inventario.
Sistema de reserva de aerolínea / hotel : cree un sistema de reserva que reserve asientos de aerolíneas o habitaciones de hotel. Cobra varias tarifas para secciones particulares del avión u hotel. Ejemplo, la primera clase va a costar más que el entrenador. Las habitaciones del hotel tienen suites penthouse que cuestan más. Mantenga un registro de cuándo habrá habitaciones disponibles y se pueden programar.
Gerente de la empresa: cree una jerarquía de clases: clase abstracta Empleado y subclases Empleado por hora, Empleado asalariado, Gerente y Ejecutivo. El pago de cada persona se calcula de manera diferente, investigue un poco al respecto. Después de haber establecido una jerarquía de empleados, cree una clase de empresa que le permita administrar a los empleados. Debería poder contratar, despedir y criar empleados.
Administrador de cuentas bancarias : cree una clase llamada Cuenta, que será una clase abstracta para otras tres clases llamadas Cuenta de cheques, Cuenta de ahorros y Cuenta de negocios. Administre créditos y débitos de estas cuentas a través de un programa de estilo ATM.
Programador de paciente / médico : cree una clase de paciente y una clase de médico. Tenga un médico que pueda manejar a múltiples pacientes y configure un programa de programación en el que un médico solo pueda manejar a 16 pacientes durante un día de trabajo de 8 horas.
Creador y administrador de recetas: cree una clase de recetas con ingredientes y póngalas en un programa de administrador de recetas que las organice en categorías como postres, platos principales o por ingredientes como pollo, carne de res, sopas, pasteles, etc.
Galería de imágenes : cree una clase abstracta de imagen y luego una clase que herede de ella para cada tipo de imagen. Póngalos en un programa que los muestre en un formato de galería para su visualización.
Clases de área de forma y perímetro : cree una clase abstracta llamada Forma y luego herede de ella otras formas como diamante, rectángulo, círculo, triángulo, etc. Luego haga que cada clase anule la funcionalidad de área y perímetro para manejar cada tipo de forma.
Flower Shop Ordering To Go : crea una aplicación de tienda de flores que se ocupa de objetos de flores y usa esos objetos de flores en un objeto de ramo que luego se puede vender. Mantenga un registro de la cantidad de objetos y cuándo puede necesitar pedir más.
Family Tree Creator : crea una clase llamada Persona que tendrá un nombre, cuándo nacieron y cuándo (y si) murieron. Permita al usuario crear estas clases Persona y ponerlas en una estructura de árbol genealógico. Imprime el árbol en la pantalla.
Enhebrar
Crear una barra de progreso para descargas : cree una barra de progreso para aplicaciones que puedan realizar un seguimiento de una descarga en curso. La barra de progreso estará en un hilo separado y se comunicará con el hilo principal mediante delegados.
Bulk Thumbnail Creator : el procesamiento de imágenes puede llevar un poco de tiempo para algunas transformaciones. Especialmente si la imagen es grande. Cree un programa de imágenes que pueda tomar cientos de imágenes y convertirlas a un tamaño específico en el hilo de fondo mientras hace otras cosas. Para mayor complejidad, tenga un cambio de tamaño de manejo de subprocesos, cambie el nombre de las miniaturas a granel, etc.
Web
Page Scraper : crea una aplicación que se conecta a un sitio y extrae todos los enlaces o imágenes, y los guarda en una lista. Opcional: organice el contenido indexado y no permita duplicados. Haga que ponga los resultados en un archivo de índice fácil de buscar.
Pizarra en línea : cree una aplicación que le permita dibujar, escribir notas y usar varios colores para desarrollar ideas para proyectos. Opcional: agregue la función para invitar a amigos a colaborar en una pizarra en línea.
Obtenga el tiempo atómico del reloj de Internet : este programa obtendrá el tiempo atómico verdadero de un reloj de tiempo atómico en Internet. Utilice cualquiera de los relojes atómicos devueltos por una simple búsqueda en Google.
Obtener el clima actual: obtenga el clima actual de un código postal / postal determinado. Opcional: intente localizar al usuario automáticamente.
Inicio de sesión automático y acción programados : cree una aplicación que inicie sesión en un sitio determinado en un horario e invoque una determinada acción y luego cierre la sesión. Esto puede ser útil para revisar el correo web, publicar contenido regular u obtener información para otras aplicaciones y guardarlo en su computadora.
Generador de tarjetas electrónicas : cree un sitio que permita a las personas generar sus pequeñas tarjetas electrónicas y enviarlas a otras personas. No utilices Flash. Use una biblioteca de imágenes y quizás lemas o citas perspicaces.
Sistema de gestión de contenido : cree un sistema de gestión de contenido (CMS) como Joomla, Drupal, PHP Nuke, etc. Comience con poco. Opcional: Permitir la adición de módulos / complementos.
Web Board (Foro) : cree un foro para que usted y sus amigos publiquen, administren y compartan pensamientos e ideas.
CAPTCHA Maker – ¿Alguna vez has visto esas imágenes con letras y números cuando te registras en un servicio y luego te pide que ingreses lo que ves? Evita que los bots web se registren automáticamente y envíen correo no deseado. Intente crear uno para formularios en línea.
Archivos
Quiz Maker : cree una aplicación que tome varias preguntas de un archivo, que se seleccione al azar y que reúna un cuestionario para los estudiantes. Cada prueba puede ser diferente y luego lee una clave para calificar las pruebas.
Ordenar Excel / CSV File Utility : lee un archivo de registros, los ordena y luego los vuelve a escribir en el archivo. Permita que el usuario elija varios estilos de clasificación y clasificación en función de un campo en particular.
Crear Zip File Maker : el usuario ingresa varios archivos de diferentes directorios y el programa los comprime en un archivo zip. Opcional: aplique compresión real a los archivos. Comience con el algoritmo de Huffman.
Generador de PDF : una aplicación que puede leer un archivo de texto, un archivo html o algún otro archivo y genera un archivo PDF a partir de él. Ideal para un servicio basado en la web donde el usuario carga el archivo y el programa devuelve un PDF del archivo. Opcional: Implemente en GAE o Heroku si es posible.
Mp3 Tagger : modifique y agregue etiquetas ID3v1 a los archivos MP3. Vea si también puede agregar la carátula del álbum en el encabezado del archivo MP3, así como otras etiquetas ID3v2.
Code Snippet Manager : otro programa de utilidad que permite a los codificadores poner funciones, clases u otros tidbits para guardar para su uso posterior. Organizado por el tipo de fragmento o idioma, el codificador puede buscar rápidamente el código. Opcional: para practicar más, intente agregar resaltado de sintaxis según el idioma.
Bases de datos
Analizador de consultas SQL : una aplicación de utilidad en la que un usuario puede ingresar una consulta y ejecutarla en una base de datos local y buscar formas de hacerla más eficiente.
Remote SQL Tool : una utilidad que puede ejecutar consultas en servidores remotos desde su computadora local a través de Internet. Debe incluir un host remoto, nombre de usuario y contraseña, ejecutar la consulta y devolver los resultados.
Generador de informes : cree una utilidad que genere un informe basado en algunas tablas de una base de datos. Genera informes de ventas basados en las tablas de pedido / detalles del pedido o resume los días de actividad de la base de datos actual.
Programador de eventos y calendario : cree una aplicación que permita al usuario ingresar una fecha y hora de un evento, notas de eventos y luego programar esos eventos en un calendario. El usuario puede navegar por el calendario o buscar eventos específicos en el calendario. Opcional: permita que la aplicación cree eventos de repetición que se repitan todos los días, semanas, meses, años, etc.
Rastreador de presupuestos : escriba una aplicación que realice un seguimiento del presupuesto de un hogar. El usuario puede agregar gastos, ingresos y costos recurrentes para averiguar cuánto están ahorrando o perdiendo durante un período de tiempo. Opcional: permita que el usuario especifique un intervalo de fechas y vea el flujo neto de dinero dentro y fuera del presupuesto de la casa para ese período de tiempo.
TV Show Tracker – ¿Tienes un programa favorito que no te quieres perder? ¿No tienes un PVR o no quieres encontrar el programa para luego PVR? Cree una aplicación que pueda buscar en varios sitios de la Guía de TV en línea, ubique los programas / horarios / canales y agréguelos a una aplicación de base de datos. La base de datos / sitio web puede enviarle recordatorios por correo electrónico de que un programa está por comenzar y en qué canal estará.
Sistema de planificador de viajes: cree un sistema que permita a los usuarios armar su propio pequeño itinerario de viaje y realizar un seguimiento de los arreglos de la aerolínea / hotel, los puntos de interés, el presupuesto y el horario.
Gráficos y Multimedia
Presentación de diapositivas : cree una aplicación que muestre varias imágenes en un formato de presentación de diapositivas. Opcional: intente agregar varios efectos como transiciones de fundido de entrada / salida, limpieza de estrellas y persianas de ventana.
Transmita video en línea : intente crear su propio reproductor de video en línea.
Mp3 Player : un programa simple para reproducir tus archivos de música favoritos. Agregue funciones que cree que faltan en su reproductor de música favorito.
Aplicación de marca de agua : ¿tiene algunas imágenes que desea proteger con derechos de autor? Agregue su propio logotipo o texto ligeramente en el fondo para que nadie pueda simplemente robar sus gráficos de su sitio. Haga un programa que agregue esta marca de agua a la imagen. Opcional: utilice subprocesos para procesar varias imágenes simultáneamente.
Gráficos de tortuga : este es un proyecto común en el que se crea un piso de 20 x 20 cuadrados. Usando varios comandos le dices a una tortuga que dibuje una línea en el piso. Tiene que moverse hacia adelante, hacia la izquierda o hacia la derecha, levantar o soltar el lápiz, etc. Realice una búsqueda en línea de “Gráficos de tortuga” para obtener más información. Opcional: Permita que el programa lea en la lista de comandos de un archivo.
GIF Creator Un programa que reúne múltiples imágenes (PNG, JPG, TIFF) para crear un GIF suave que se puede exportar. Opcional: también haga que el programa convierta pequeños archivos de video a GIF.
Seguridad
Cifrado César: implemente un cifrado César, tanto de codificación como de decodificación. La clave es un número entero del 1 al 25. Este cifrado gira las letras del alfabeto (de la A a la Z). La codificación reemplaza cada letra con la 1ª a la 25ª letra del alfabeto (ajustando Z a A). Entonces la clave 2 cifra “HI” a “JK”, pero la clave 20 cifra “HI” a “BC”. Este simple “cifrado de sustitución monoalfabética” casi no proporciona seguridad, porque un atacante que tiene el mensaje codificado puede usar el análisis de frecuencia para adivinar la clave o simplemente probar las 25 claves.
Espero que esto ayude.