es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

trata “\\n” como un carácter de escape en python

Cómo puedo imprimir “\n” como un salto de línea normal “\n”

ejemplo:

str = “lorem\ipsu”

la salida debería ser:

lorem
ipsum

no: lorem\ipsu

Lo intenté:

print(str[6:])

y más cosas pero nada funcionó

LA IDEA ES DESHACERSE DE SOLO UNA BARRA INVERTIDA PARA IMPRIMIRLA COMO CARÁCTER DE SALTO DE LÍNEA COMO DEBERÍA

ord(“\x1c”)

28

mystr = “\x1c”

ord(mystr[1:])
TypeError: ord() expected a character, but string of length 3 found

Aquí está el código actual

import string

lower = list(string.ascii_lowercase)
lower_dec = []

upper = list(string.ascii_uppercase)
upper_dec=[]

nums = list(map(str,range(0,10)))
nums_dec =[]

def E(key,p):

cipherList = []
cipherText = []
for row in range(len(key)):
    c = 0
    for i in range(len(key[row])):
        c+= (ord(p[i])*key[row][i])%26
    cipherList.append(repr(chr(c)))


for char in cipherList:
    cipherText.append(char.replace("'",""))


return cipherText

key = [[2,3,5],[11,4,7],[20,12,12]]
p = ['p','a','y']

print(E(key,p))
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para imprimir “\n” como un caracter de nueva línea, puedes usar el siguiente código:

    str = "lorem\nipsum"
    print(str)
    

    Output:

    lorem
    ipsum
    

    Esto imprimirá la cadena con un caracter de nueva línea en lugar de “\n”.

    En tu código de ejemplo, puedes reemplazar la función repr con chr para obtener el carácter real en lugar de una representación en cadena del carácter:

    def E(key,p):
        cipherList = []
        cipherText = []
        for row in range(len(key)):
            c = 0
            for i in range(len(key[row])):
                c += (ord(p[i]) * key[row][i]) % 26
            cipherList.append(chr(c)) # reemplazar repr con chr
    
        return cipherList
    
    key = [[2,3,5],[11,4,7],[20,12,12]]
    p = ['p','a','y']
    print(E(key, p)) # output: ['\x1c', '1', '.']
    

    Ahora, la salida tendrá los caracteres reales en lugar de sus representaciones en cadena. Sin embargo, el primer carácter sigue siendo el carácter Unicode con escape “\x1c”, que es equivalente a un Separador de Registros en ASCII. Si deseas imprimirlo como un carácter de nueva línea, puedes reemplazarlo con “\n”:

    def E(key,p):
        cipherList = []
        cipherText = []
        for row in range(len(key)):
            c = 0
            for i in range(len(key[row])):
                c += (ord(p[i]) * key[row][i]) % 26
            cipherList.append(chr(c))
    
        # Reemplazar el carácter Unicode con escape por un carácter de nueva línea
        cipherList[0] = '\n'
        return cipherList
    
    key = [[2,3,5],[11,4,7],[20,12,12]]
    p = ['p','a','y']
    print(''.join(E(key, p))) # output: '\n1.'
    

    Ahora, la salida tendrá un carácter de nueva línea en lugar del carácter Unicode con escape.

Comments are closed.