He estado programando en Python desde hace 8 años y en esta respuesta intentaré compartir mi experiencia.
Edición: TLDR:
- Aprenda los conceptos básicos de Python de: Bienvenido a Python.org
- El mejor recurso para aprender tal como está: la clase magistral completa de Python: aprender Python From Scratch.
Aquí están los contenidos del curso junto con las duraciones de la sección:
- ¿Cuáles son los mejores lugares en línea para aprender la estructura de datos y avanzar en la estructura de datos?
- ¿Cuál es el mejor curso de marketing digital (corto plazo)? Tengo 8,5 años de experiencia laboral en una startup.
- Cómo desarrollar la aplicación de Android.
- ¿Dónde aprendo la fotografía online gratis?
- ¿Cómo aprendo la carpintería en línea?
- Paso final: Construye 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 otro lenguaje de programación, debes tener un cierto objetivo en mente. Debería cuestionarse a sí mismo “¿Por qué exactamente quiero aprender Python?” Por ejemplo, es posible que desee ser un científico de datos o que solo desee diseñar aplicaciones web o crear API.
Una vez que haya decidido su objetivo principal, el aprendizaje se vuelve mucho más fácil, eficiente y rápido. Ahora vamos a llegar a la respuesta real:
Conceptos básicos de Python: Si eres 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 aceptando entrada de usuario.
- Estructura de control en python como por ejemplo if-else.
- Bucles: Para y mientras bucles.
- Funciones y módulos, funciones incorporadas como Range.
- Manejo de excepciones .
- Manejo de archivos.
Temas importantes:
Una vez que se atienden los aspectos 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 al usar 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, procedamos con algunos marcos y bibliotecas de Python interesantes.
Para construir aplicaciones GUI:
- Tkinter.
- PyQt.
Crear una aplicación basada en web dinámica:
- Django (uno de mis favoritos)
- Matraz.
Análisis de los datos:
- Pandas
- Numpy.
Rastreo de la web:
- Sopa hermosa
- 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 única para todas sus necesidades de Python, le recomendaría este curso: The Complete Python Masterclass: Aprenda Python desde cero. He enumerado este curso porque cumple lo prometido. Cubre los conceptos básicos de Python, la programación orientada a objetos, Tkinter, Flask, Web-scraping, análisis de datos utilizando Numpy y Pandas y también tiene algunos proyectos para crear algunas aplicaciones geniales.
Próximos pasos:
Una vez que haya completado los temas anteriores a un nivel con el que se sienta cómodo para trabajar, entonces puede comenzar a construir sus propios proyectos.
Una cosa interesante acerca de Python es que hay mucho que puedes hacer con Python.
Nota:
A continuación se enumeran algunas ideas de proyectos que puede probar. Intentaré mantener actualizada la lista:
Números
Encuentre PI hasta el enésimo dígito : ingrese un número y haga que el programa genere PI con tantos decimales. Mantenga un límite a lo lejos que llegará el programa.
Encuentre e al Nth Digit . Igual que el problema anterior, pero con e en lugar de PI. Ingrese un número y haga que el programa genere e hasta tantos decimales. Mantenga un límite a lo lejos que llegará el programa.
Secuencia de Fibonacci : ingrese un número y haga que el programa genere la secuencia de Fibonacci a ese número o al número Nth.
Factorización principal: haga que el usuario ingrese un número y busque todos los Factores principales (si los hay) y los muestre.
Próximo número primo : haga que el programa encuentre números primos hasta que el usuario elija dejar de pedir el siguiente.
Encuentre el costo de la baldosa para cubrir W x H Piso : calcule el costo total de la baldosa que se necesitaría para cubrir un plano del suelo de ancho y alto, utilizando un costo ingresado por el usuario.
Calculadora de hipotecas : calcule los pagos mensuales de una hipoteca a plazo fijo en un plazo determinado de Nth 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 composición (Mensual, Semanal, Diario, Continuo).
Cambiar programa de devolución : el usuario ingresa un costo y luego la cantidad de dinero entregada. El programa determinará el cambio y la cantidad de trimestres, monedas, monedas de cinco centavos, centavos necesarios para el cambio.
Convertidor binario a decimal y posterior : 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.
Conversor de unidades (temperatura, 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 que desea convertir y luego el valor. El programa hará entonces la conversión.
Despertador: un reloj simple en el que reproduce un sonido después de X cantidad 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 tarjetas de crédito: ingresa 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 (observe cómo las tarjetas de crédito utilizan una suma de comprobación).
Calculadora de impuestos: le pide al usuario que ingrese un costo y un impuesto estatal o estatal. A continuación, 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 ser 1. Resuelve esto usando ambos Bucles y recursion.
Á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: un número feliz se define mediante el siguiente proceso. Comenzando con cualquier entero positivo, reemplaza el número por la suma de los cuadrados de sus dígitos, y repite el proceso hasta que el número sea igual a 1 (donde permanecerá), o se repite sin cesar en un ciclo que no incluye 1. Esos números por lo que este proceso termina en 1 son números felices, mientras que aquellos que no terminan en 1 son números infelices. Muestra un ejemplo de tu salida aquí. Encuentra los primeros 8 números felices.
Nombres de números: muestra cómo se deletrea un número en inglés. Puede usar una implementación preexistente o enrollar la suya propia, pero debe admitir entradas de hasta al menos un millón (o el valor máximo del tipo de entero acotado predeterminado de su idioma, si es menos). Opcional: Compatibilidad con entradas que no sean enteros positivos (como cero, enteros negativos y números de punto flotante).
Coin Flip Simulation : escriba un código que simule el lanzamiento de 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 admitir límites infinitos.
Exposiciónción rápida: pida al usuario que ingrese 2 enteros a y b y que emita a ^ b (es decir, pow (a, b)) en complejidad de tiempo O (lg n).
Algoritmos clásicos
Conjetura de Collatz : comience con un número n> 1. Encuentre el número de pasos necesarios para alcanzar uno usando el siguiente proceso: Si n es par, divídalo por 2. Si n es impar, multiplíquelo por 3 y agregue 1.
Clasificación: implemente dos tipos de algoritmos de clasificación: Combinar clasificación y clasificación de burbujas.
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 menor distancia entre ellos.
Tamiz de Eratóstenes: el tamiz de Eratóstenes es una de las formas más eficientes de encontrar todos los primos más pequeños (menos de 10 millones aproximadamente).
Grafico
Gráfico a partir de enlaces: cree un programa que creará un gráfico o red a partir de una serie de enlaces.
Ruta Euleriana: cree un programa que tome como entrada un gráfico y produzca una ruta Euleriana o un ciclo Euleriano, o indique que no es posible. Una ruta Euleriana 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 : crea un programa que toma un gráfico como entrada y genera salidas si todos los nodos están conectados o no.
El algoritmo de Dijkstra: cree un programa que encuentre la ruta más corta a través de un gráfico usando sus bordes.
Árbol de expansión mínimo: cree un programa que tome un gráfico conectado y no dirigido con pesos y genere el árbol de expansión mínimo del gráfico, es decir, un subgrafo que sea un árbol, contenga todos los vértices, y la suma de sus pesos sea la menor posible.
Estructuras de datos
Índice invertido : un índice invertido es una estructura de datos que se utiliza para crear una búsqueda 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 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 los números que son múltiplos de tres y cinco, imprima “FizzBuzz”.
Invertir una cadena : ingrese una cadena y el programa la revertirá e imprimirá.
Pig Latin – Pig Latin es un juego de alteraciones jugado en el juego en inglés. Para crear la forma latina de cerdo de una palabra en inglés, el sonido de la consonante inicial se transpone al final de la palabra y se coloca un ay (Ejemplo: “banana” produciría anana-bay). Lea Wikipedia para obtener más información sobre las reglas.
Count Vowels : 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.
Verificar si Palindrome – Comprueba si la cadena ingresada por el usuario es un palíndromo. Es decir, lee lo mismo hacia delante que hacia atrás como “auto de carreras”.
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 de bloc de notas que puede abrir, editar y guardar documentos de texto. Opcional: Agrega resaltado de sintaxis y otras características.
Creador de fuentes RSS : con un enlace a RSS / Atom Feed, obtén todas las publicaciones y las muestra.
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 los símbolos ingresados por el usuario. El usuario puede establecer con qué frecuencia se comprueban 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 hacia abajo para mostrar en qué dirección se ha movido el valor del stock.
Libro de visitas / diario : una aplicación sencilla que permite a las personas agregar comentarios o escribir entradas de diario. Puede permitir comentarios o no y marcas de tiempo para todas las entradas. También se podría hacer en una caja de gritos. Opcional: implementarlo en Google App Engine o Heroku o cualquier otro PaaS (si es posible, por supuesto).
Códigos de 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 le permite al usuario ingresar una cadena de texto y luego, en un control separado, ingresar un patrón de expresiones regulares. Ejecutará la expresión regular contra el texto de origen 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 desde y hacia un servidor web remoto.
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 generar un informe o gráfico que lo muestre.
Escáner de puertos: ingrese una dirección IP y un rango de puertos donde el programa intentará encontrar puertos abiertos en la computadora determinada 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, como servidor web e IP, 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 pídale que busque en whois y le envíe los resultados.
Site Checker con Time Scheduling : una aplicación que intenta conectarse a un sitio web o servidor cada cierto tiempo o un tiempo determinado y verifica si está activo. Si está inactivo, se lo notificará por correo electrónico o publicando un aviso en pantalla.
Las clases
Proyecto de inventario de productos : cree una aplicación que administre un inventario de productos. Cree una clase de producto que tenga un precio, una identificación y una cantidad a la mano. Luego cree una clase de inventario que haga un seguimiento de varios productos y pueda resumir el valor del inventario.
Línea aérea / sistema de reserva de hotel : cree un sistema de reserva que reserve asientos de aerolíneas o habitaciones de hotel. Se 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 estarán disponibles las habitaciones y se pueden programar.
Gerente de la compañía: cree una jerarquía de clases – clase abstracta Empleado y subclases HourlyEmployee, SalariedEmployee, Manager y Executive. La paga de cada uno se calcula de manera diferente, investiga un poco sobre ello. Una vez que haya establecido una jerarquía de empleados, cree una clase de empresa que le permita administrar a los empleados. Debes 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 los créditos y débitos de estas cuentas a través de un programa de estilo ATM.
Programador de pacientes / médicos : cree una clase de pacientes y una clase de médicos. Tenga un médico que pueda manejar a varios pacientes y establezca un programa de programación en el que un médico solo pueda manejar a 16 pacientes durante un día laboral de 8 horas.
Receta creador y administrador : cree una clase de receta con ingredientes y póngalos en un programa de administración de recetas que los organiza en categorías como postres, platos principales o por ingredientes como pollo, carne de res, sopas, tartas, etc.
Galería de imágenes : crea una clase abstracta de imagen y luego una clase que hereda de ella para cada tipo de imagen. Póngalos en un programa que los muestre en un formato de estilo de galería para verlos.
Área de forma y clases de 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 el área y la funcionalidad del perímetro para manejar cada tipo de forma.
Flower Shop Ordering To Go : cree una aplicación de tienda de flores que se ocupe de los objetos de flores y use esos objetos de flores en un objeto de ramo que luego puede venderse. Lleve un registro de la cantidad de objetos y cuándo puede necesitar ordenar más.
Creador de árbol familiar : cree una clase llamada Persona que tendrá un nombre, cuándo nacieron y cuándo (y si) murieron. Permitir al usuario crear estas clases de persona y colocarlas en una estructura de árbol familiar. Imprime el árbol a la pantalla.
Enhebrado
Crear una barra de progreso para descargas : cree una barra de progreso para aplicaciones que puedan realizar un seguimiento de una descarga en progreso. La barra de progreso estará en un hilo separado y se comunicará con el hilo principal utilizando 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 una mayor complejidad, tenga un cambio de tamaño en el manejo de un hilo, tenga otro cambio de nombre de miniaturas, 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 de fácil búsqueda.
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 una función para invitar a amigos a colaborar en una pizarra en línea.
Obtener 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 para un código postal / código postal dado. Opcional: Intenta localizar al usuario automáticamente.
Inicio de sesión automático programado y acción : cree una aplicación que inicie sesión en un sitio determinado en un horario, 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 guardarla en su computadora.
Generador de tarjetas electrónicas : cree un sitio que permita a las personas generar sus propias tarjetas electrónicas y enviarlas a otras personas. No utilice flash. Utilice una biblioteca de imágenes y quizás lemas o citas interesantes.
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 : ¿Ves 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 robots web se registren automáticamente y envíen correo no deseado. Intente crear uno mismo para formularios en línea.
Archivos
Creador de cuestionarios: haga una aplicación que tome varias preguntas de un archivo, que se seleccionen al azar y que arme un cuestionario para los estudiantes. Cada prueba puede ser diferente y luego lee una clave para calificar las pruebas.
Sort 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 según un campo en particular.
Crear archivo comprimido Zip : el usuario ingresa varios archivos de diferentes directorios y el programa los comprime en un archivo zip. Opcional: aplicar la compresión real a los archivos. Comience con el algoritmo de Huffman.
PDF Generator : una aplicación que puede leer un archivo de texto, un archivo html o cualquier otro archivo y genera un archivo PDF a partir de él. Excelente para un servicio basado en web donde el usuario carga el archivo y el programa devuelve un PDF del archivo. Opcional: Implementar en GAE o Heroku si es posible.
Mp3 Tagger : modifique y agregue etiquetas ID3v1 a 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 datos para guardar y usar más adelante. Organizado por el tipo de fragmento de código o idioma, el codificador puede buscar rápidamente el código. Opcional: para práctica adicional, intente agregar resaltado de sintaxis en función del 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 maneras 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 : crea una utilidad que genera un informe basado en algunas tablas de una base de datos. Genera informes de ventas basados en las tablas de detalles de pedidos / pedidos o resume los días de actividad actual de la base de datos.
Programador de eventos y calendario : cree una aplicación que le 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 en el calendario eventos específicos. Opcional: Permita que la aplicación cree eventos de repetición que vuelven a ocurrir cada día, semana, mes, año, etc.
Rastreador de presupuesto : escriba una aplicación que realice un seguimiento del presupuesto de un hogar. El usuario puede agregar gastos, ingresos y costos recurrentes para saber 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 quieres perderte? ¿No tienes un PVR o quieres poder 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, ubicar los programas / horarios / canales y agregarlos 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á a punto de comenzar y en qué canal estará.
Sistema de planificación 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 calendario.
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 transición / desaparición gradual, limpieza de estrellas y transiciones de persianas.
Transmita video desde Internet : intente crear su propio reproductor de video en línea.
Mp3 Player – Un programa simple para reproducir tus archivos de música favoritos. Agrega funciones que crees que faltan en tu reproductor de música favorito.
Solicitud de marca de agua : ¿Tiene algunas fotos que quiere proteger con derechos de autor? Agregue su propio logotipo o texto ligeramente sobre el fondo para que nadie pueda simplemente robar sus gráficos de su sitio. Haz un programa que agregue esta marca de agua a la imagen. Opcional: Use hilos para procesar múltiples imágenes simultáneamente.
Gráficos de tortuga : este es un proyecto común donde creas un piso de 20 x 20 cuadrados. Usando varios comandos, le dices a una tortuga que dibuje una línea en el piso. Ha movido hacia adelante, hacia la izquierda o hacia la derecha, levante o suelte el lápiz, etc. Haga 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 varias imágenes (PNG, JPG, TIFF) para crear un GIF sin problemas que se puede exportar. Opcional: Haz que el programa convierta también pequeños archivos de video a GIFs.
Seguridad
Cifrado César: implemente un cifrado César, tanto de codificación como de decodificación. La clave es un número entero de 1 a 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 siguiente en el alfabeto (ajuste Z a A). Así que la clave 2 cifra “HI” a “JK”, pero la clave 20 cifra “HI” a “BC”. Este simple “cifrado de sustitución monoalfabético” no proporciona seguridad, ya que un atacante que tiene el mensaje codificado puede usar el análisis de frecuencia para adivinar la clave o simplemente probar las 25 teclas.
Espero que esto ayude.