• 1
    数据输入输出
    • 任务
  • 2
    条件语句
    • 任务
  • 3
    for循环
    • 任务
  • 4
    字符串
    • 任务
  • 5
    while循环
    • 任务
  • 6
    列表
    • 任务
  • 7
    二维数组
    • 任务
  • 8
    字典
    • 任务
  • 9
    集合
    • 任务
  • 10
    函数与递归
    • 任务
  • к

课程 2. Conditions

难度:

任务«密码分析器»

💻 Python

你 — 密码学部门的一名初级助理。你的资深同事正在使用频率分析对一条用英语书写的重要消息进行解码。他已经确定了密文中哪个符号出现得最频繁。现在他需要验证几个假设,即这个符号对应的是英文字母表中的哪个字母。

你的任务 — 编写一个程序,帮助快速评估假设的合理性。程序应请求输入一条加密消息(需要用于上下文,但不需要对其进行分析)以及假定的密钥字母(即根据假设,最频繁出现的符号所对应的字母)。

基于关于英文字母频率的常识,程序应根据以下规则对密钥的可能性做出判断:

  1. 如果假定的密钥是字母 'E',这是最可能的情况,因为 'E' — 是英语中最常见的字母。
  2. 如果密钥是其他常见元音之一('A'、'O'、'I'),则这是一个可能的情况。
  3. 如果密钥是最罕见的字母之一('Z'、'Q'、'J'、'X'),则这是一个不太可能的情况。
  4. 在所有其他情况下(其他辅音和元音),则视为可疑。

程序应输出以下四种评估之一:«最可能的密钥。»、«可能的密钥。»、«不太可能的密钥。» 或 «可疑的密钥。»。

输入格式

第一行:一条加密消息(类型:行)。
第二行:预估的解密密钥,一个英文字母表的大写字母(类型:符号/行)。

输出格式

第一行:关键概率评估(类型:行)。

示例

输入

xli getvi csyph xsve!
e

输出

最可能的键。

提示

There will be no clue here, decide for yourself!

main.py
测试 1
测试 2
测试 3
测试 4
测试 5
测试 6
测试 7
测试 8
测试 9
测试 10
开发者解答
# Программа запрашивает зашифрованное сообщение.
# Оно не используется в логике, но является частью условия задачи.
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("Сомнительный ключ.")

🎉 恭喜! 🎉

你出色地完成了任务!这是一个不小的挑战,但你找到了正确答案。你离编程大师又近了一步!继续保持,每一步都让你更强大。

AD

广告

red-snake blue-snake green-snake

正在运行代码...

AI助手

你好!我是你的编程助手。随时向我提问关于 Python 的问题——我可以解释函数、方法,并帮助你完成当前任务!