Python - Codificación de párrafo por desplazamiento

 
Vista:

Codificación de párrafo por desplazamiento

Publicado por Óscar (7 intervenciones) el 20/08/2020 10:31:14
Buenos días, Vuelvo a mostrar un ejercicio del curso introductorio que estoy realizando, para verificar si es correcto el código elaborado.

Enunciado:

Cargar el fichero "Quijote.txt" del ejercicio del tema 7 con el código de caracteres correcto, crear una función que permita seleccionar el número de párrafo que se solicita más abajo (empezando a contar por 0 para el primer párrafo) como en el ejercicio del tema 7 y le aplique a ese párrafo una encriptación por desplazamiento de código (como la explicada en el tema 6) con el desplazamiento positivo indicado más abajo, devolviendo el párrafo encriptado y obteniendo a la vez el valor numérico del código del caracter que se encuentra en la posición del párrafo que se indica más abajo (empezando a contar por 0 para el primer caracter del párrafo). Guardar el párrafo encriptado en una variable y crear una función a la que pasarle el párrafo encriptado y el desplazamiento aplicado y que permita desencriptar el texto aplicando el mismo desplazamiento de código en sentido inverso (esta parte no se evalua).

Número de párrafo: 8

Desplazamiento del código de encriptación: 5

Número de carácter dentro del párrafo: 160

Lo que solicita es el Número de código del carácter encriptado que se encuentra en la posición indicada.

Código implementado (les agradecería comentarios de posibles errores):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
def parrafo(numerodeparrafo):
    #primero cargamos el fichero
    fichero = open('quijote-Copy1.txt', "r", encoding="utf-8")
    #lo leemos
    texto = fichero.read()
    #y seleccionamos el párrafo indicado en el parámetro
    parrafos = texto.split('\n')
    while '' in parrafos:
        parrafos.remove('')
    cuenta=0
    for parrafo in fichero:
        cuenta=cuenta+1
    parrafoseleccionado=parrafos[numerodeparrafo]
    cadena=parrafoseleccionado
    cadenacodificada=""
    desplazamiento=5
    for letra in cadena:
        cadenacodificada=cadenacodificada+chr(ord(letra)+desplazamiento)
    cadenadecodificada=''
    for letra in cadenacodificada:
        cadenadecodificada=cadenadecodificada+chr(ord(letra)-desplazamiento)
 
    print(cadena)
    print(cadenacodificada)
    print(cadenadecodificada)
 
    for letra in cadenacodificada:
        print(ord(letra),end=" ")
 
    for letra in cadenacodificada[160:161]:
        print(f'\n\n\nEl número de código del carácter encriptado que se encuentra en la posición indicada: {ord(letra)}')
 
 
 
    #acordaos de cerrar el fichero si no lo habéis abierto con un with
    fichero.close()
    return(parrafoseleccionado)
 
parrafo(8)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder