• 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 2. Conditions

Dificultad:

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

Tarea«Analizador criptográfico»

💻 Python

Eres — el asistente junior del departamento de criptografía. Tu colega senior está descifrando un mensaje importante escrito en inglés mediante análisis de frecuencia. Ya ha determinado qué símbolo del cifrado es el que aparece con más frecuencia. Ahora necesita verificar algunas hipótesis sobre a qué letra del alfabeto inglés corresponde este símbolo.

Tu tarea — es escribir un programa que ayude a evaluar rápidamente la plausibilidad de la hipótesis. El programa debe solicitar un mensaje cifrado (es necesario para el contexto, pero no se requiere analizarlo) y la supuesta letra clave (aquella en la que, según la hipótesis, se expande el símbolo más frecuente).

Basándose en el conocimiento común sobre la frecuencia de las letras en inglés, el programa debe emitir un veredicto sobre la probabilidad de la clave según las siguientes reglas:

  1. Si la clave estimada — es la letra   'E' , esta es la opción más probable, ya que 'E' — es la letra más común en inglés.
  2. Si la clave — es una de las otras vocales frecuentes ( 'A' ,   'O' ,   'I' ), entonces es una opción probable.
  3. Si la clave — es una de las letras más raras ( 'Z' ,   'Q' ,   'J' ,   'X' ), entonces es una opción poco probable.
  4. En todos los demás casos (otras consonantes y vocales) se considera dudosa.

El programa debe mostrar una de cuatro evaluaciones: «clave más probable.», «clave probable.», «clave poco probable.» o «clave dudosa.».

Formato de entrada

Primera línea: un mensaje cifrado (tipo: línea).
Segunda línea: la clave de descifrado estimada, una letra mayúscula del alfabeto inglés (tipo: símbolo/línea).

Formato de salida

Una línea: Evaluación de la probabilidad clave (tipo: línea).

Ejemplo

Entrada

xli getvi csyph xsve!
e

Salida

La clave más probable.

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
# Программа запрашивает зашифрованное сообщение.
# Оно не используется в логике, но является частью условия задачи.
encrypted_message = input()

# Программа запрашивает предполагаемый ключ — одну букву.
# Это главный входной параметр, который будет анализироваться.
key_char = input()

# Проверяем, является ли предложенный ключ буквой 'E'.
# Это основное и самое сильное условие.
if key_char == 'E':
    # Если да, выводим сообщение о наибольшей вероятности.
    print("Наиболее вероятный ключ.")

# Если ключ не 'E', проверяем, является ли он одной из других частых гласных.
# Используем несколько условий 'or' для проверки вхождения в группу.
elif key_char == 'A' or key_char == 'O' or key_char == 'I':
    # Если да, выводим сообщение о вероятности.
    print("Вероятный ключ.")

# Если предыдущие условия не выполнились, проверяем, не является ли ключ редкой буквой.
elif key_char == 'Z' or key_char == 'Q' or key_char == 'J' or key_char == 'X':
    # Если да, выводим сообщение о малой вероятности.
    print("Маловероятный ключ.")

# Если ни одно из вышеперечисленных условий не сработало,
# значит, это любой другой символ (частая согласная и т.д.).
else:
    # Выводим сообщение о сомнительности ключа.
    print("Сомнительный ключ.")

🎉 ¡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.