• 1
    Entrada y salida de datos
    • Tareas
  • 2
    Condiciones
    • Tareas
  • 3
    Bucle for
    • Tareas
  • 4
    Cadenas de texto
    • Tareas
  • 5
    Bucle while
    • Tareas
  • 6
    Listas
    • Tareas
  • 7
    Matrices 2D
    • Tareas
  • 8
    Diccionarios
    • Tareas
  • 9
    Conjuntos
    • Tareas
  • 10
    Funciones y recursión
    • Tareas
  • к

Lección 4. Lines

Dificultad:

иконка человека красный иконка человека белая иконка человека зеленая Pythonlib

Tarea«Deportes»

💻 Python

Escriba un programa que convierta el valor de la línea al formato Base64 utilizando la codificación ASCII. Nota: & nbsp; esta tarea utiliza una versión de Base64 sin relleno (el símbolo & nbsp; = no se agrega al final). El algoritmo Base64 convierte datos binarios en un formato de texto, utilizando solo 64 símbolos ASCII seguros para la impresión. La idea principal es tomar 3 bytes (24 bits) de los datos de entrada y presentarlos en forma de 4 caracteres (4 * 6 bits = 24 bits).

Codificación ( to_base64 ):

  1. La línea se convierte en una secuencia de códigos ASCII.
  2. Cada código ASCII se presenta como un número binario de 8 bits.
  3. Todas estas secuencias de 8 bits se combinan en una larga línea de bits.
  4. Esta larga línea se divide en grupos de 6 bits.
  5. Cada grupo de 6 bits se convierte en un número decimal (de 0 a 63 decimal).
  6. Este número se utiliza como índice para seleccionar un símbolo del alfabeto Base64 ( "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" ).

Formato de entrada

Se proporciona una línea en la entrada.

Formato de salida

Línea — El resultado de la transformación.

Ejemplo

Entrada

hombre

Salida

Twfu

Pista

There will be no clue here, decide for yourself!

main.py
Prueba 1
Prueba 2
Prueba 3
Prueba 4
Prueba 5
Prueba 6
Prueba 7
Prueba 8
Prueba 9
Prueba 10
Solución del desarrollador
# Константа с символами алфавита Base64
BASE64_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
# Создаем словарь для быстрого обратного поиска (декодирования)
BASE64_MAP = {char: index for index, char in enumerate(BASE64_CHARS)}
s = input()
if not s:
    print("")

# 1. Преобразуем всю строку в одну длинную битовую строку
bit_string = ""
for char in s:
    # Получаем ASCII-код символа и форматируем его в 8-битную двоичную строку
    bit_string += format(ord(char), '08b')

encoded_string = ""
# 2. Делим битовую строку на чанки (куски) по 6 бит
i = 0
while i < len(bit_string):
    chunk = bit_string[i:i+6]
    i += 6
    
    # Если последний чанк короче 6 бит, дополняем его нулями справа
    if len(chunk) < 6:
        chunk = chunk.ljust(6, '0')
        
    # 3. Конвертируем 6-битный чанк в число и находим символ в алфавите
    decimal_value = int(chunk, 2)
    encoded_string += BASE64_CHARS[decimal_value]
    
print(encoded_string) 

🎉 ¡Felicidades! 🎉

¡Has resuelto la tarea brillantemente! Era un reto difícil, pero encontraste la solución correcta. ¡Estás un paso más cerca de dominar la programación! Sigue así, cada etapa superada te hace más fuerte.

AD

Publicidad

red-snake blue-snake green-snake

Ejecutando tu código...

Asistente de IA

¡Hola! Soy tu asistente de programación. Hazme cualquier pregunta sobre Python — puedo explicarte funciones, métodos y ayudarte con la tarea actual.