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):
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


0