• 1
    إدخال وإخراج البيانات
    • المهام
  • 2
    الشروط
    • المهام
  • 3
    حلقة for
    • المهام
  • 4
    السلاسل النصية
    • المهام
  • 5
    حلقة while
    • المهام
  • 6
    القوائم
    • المهام
  • 7
    مصفوفات ثنائية الأبعاد
    • المهام
  • 8
    القواميس
    • المهام
  • 9
    المجموعات
    • المهام
  • 10
    الدوال والتكرار
    • المهام
  • к

درس 1. Entering and output of data

الصعوبة:

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

مسألة«شفرة مورس»

💻 Python

شفرة مورس — هي طريقة لتشفير الرموز باستخدام تسلسلات من النقاط والشرطات. كل حرف أو رقم أو علامة ترقيم لها رمزها الفريد.

rn

عند تجميع الرسائل، يتم فصل رموز الحروف الفردية بمسافة واحدة. يتم فصل الكلمات بثلاث مسافات. على سبيل المثال، ستبدو الرسالة "مرحبًا" هكذا   .... .. . والرسالة "مرحبًا جود" —   ..... --.----- ..--... .

rn

هناك أيضًا رمز خاص لإشارة الاستغاثة SOS، والذي يتم إرساله بدون فواصل:   · · · − − − · · · . يجب معالجة هذا الرمز كرمز واحد غير قابل للتجزئة "SOS".

rn

مهمتك — كتابة برنامج يأخذ سطرًا يحتوي على شفرة مورس كمدخل ويفك تشفيرها إلى نص مفهوم للبشر. يجب أن تكون جميع الحروف في الرسالة النهائية كبيرة. يجب تجاهل المسافات الإضافية في بداية أو نهاية سطر الإدخال.

تنسيق الإدخال

سطر واحد يحتوي على رسالة بشفرة مورس. الرموز: . (نقطة)، - (شرطة)، (مسافة بين الحروف)، (ثلاث مسافات بين الكلمات).

تنسيق الإخراج

سطر واحد & mdash; الرسالة المفكوكة بالأحرف الكبيرة باللغة الإنجليزية.

مثال

إدخال

..... --.-- .--- ..--...

إخراج

مرحبًا جود

تلميح

There will be no clue here, decide for yourself!

main.py
اختبار 1
اختبار 2
اختبار 3
اختبار 4
اختبار 5
اختبار 6
اختبار 7
اختبار 8
اختبار 9
اختبار 10
حل المطور
# Словарь для сопоставления кодов Морзе и символов.
# Включает специальный код для SOS.
MORSE_CODE_DICT = { '.-':'A', '-...':'B', '-.-.':'C', '-..':'D', '.':'E', '..-.':'F', 
                    '--.':'G', '....':'H', '..':'I', '.---':'J', '-.-':'K', '.-..':'L', 
                    '--':'M', '-.':'N', '---':'O', '.--.':'P', '--.-':'Q', '.-.':'R', 
                    '...':'S', '-':'T', '..-':'U', '...-':'V', '.--':'W', '-..-':'X', 
                    '-.--':'Y', '--..':'Z', '-----':'0', '.----':'1', '..---':'2', 
                    '...--':'3', '....-':'4', '.....':'5', '-....':'6', '--...':'7', 
                    '---..':'8', '----.':'9', '···−−−···':'SOS' }

def decode_morse(morse_code: str) -> str:
    """
    Декодирует строку с кодом Морзе в человекочитаемый текст.
    
    :param morse_code: Строка с кодом Морзе.
    :return: Декодированная строка.
    """
    # Удаляем лишние пробелы в начале и конце строки
    morse_code = morse_code.strip()
    
    decoded_message = []
    # Разделяем сообщение на слова по трём пробелам
    morse_words = morse_code.split('   ')
    
    for morse_word in morse_words:
        decoded_word = ''
        # Разделяем слово на коды букв по одному пробелу
        morse_letters = morse_word.split(' ')
        for letter_code in morse_letters:
            # Находим соответствующий символ в словаре
            # Используем get для избежания ошибки, если код не найден
            decoded_word += MORSE_CODE_DICT.get(letter_code, '')
        decoded_message.append(decoded_word)
        
    # Соединяем декодированные слова в одно предложение
    return ' '.join(decoded_message)

# Пример использования из условия
input_morse = input()
print(decode_morse(input_morse))

🎉 تهانينا! 🎉

لقد حللت المهمة ببراعة! كان صعبًا لكنك وجدت الحل الصحيح. أنت خطوة أقرب إلى الاحتراف! استمر، كل مرحلة تجعلك أقوى.

AD

إعلان

red-snake blue-snake green-snake

جارٍ تشغيل الكود...

مساعد الذكاء الاصطناعي

مرحباً! أنا مساعدك في البرمجة. اسألني أي شيء عن Python — يمكنني شرح الدوال والطرق ومساعدتك في المهمة الحالية!