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

درس 3. FOR cycle

الصعوبة:

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

مسألة«المراتب»

💻 Python

أنت وأصدقاؤك قمتم بترتيب بطولة صغيرة في لعبة الفيديو المفضلة لديكم "Space Rangers". لعب كل منكم مباراة واحدة وسجل النقاط النهائية. الآن أنتم تواجهون المهمة الأصعب & mdash; ليس فقط العثور على الفائز، بل إنشاء تصنيف كامل لجميع المشاركين.

rn

يتم تحديد التصنيف وفقًا للقواعد التالية:

rn
    rn
  1. اللاعب الحاصل على أكبر عدد من النقاط يحصل على المركز الأول (الرتبة 1).
  2. rn
  3. ثاني أكبر نتيجة & mdash; المركز الثاني (الرتبة 2)، وهكذا.
  4. rn
  5. إذا سجل عدة لاعبين نفس عدد النقاط، فإنهم جميعًا يتشاركون نفس المركز. على سبيل المثال، إذا سجل لاعبان الحد الأقصى من النقاط، فكلاهما يحصل على الرتبة 1. اللاعب التالي سيحصل على الرتبة 3 (نظرًا لأن أول مركزين مشغولان).
  6. rn
rn

مهمتك: قراءة قائمة من الأعداد الصحيحة (نقاط كل لاعب) وعرض رتبهم النهائية بنفس الترتيب.

rn

المتطلبات:
استخدم فقط الهياكل الأساسية: إدخال وإخراج البيانات، العوامل الشرطية ( if ) والحلقات & nbsp; for . حاول ألا تستخدم دوال الفرز المدمجة أو هياكل البيانات المعقدة الأخرى.

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

نظارات اللاعبين في البطولة (سطر واحد يحتوي على أعداد صحيحة مفصولة بفجوة).

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

الرتب لكل لاعب بنفس الترتيب (سطر واحد يحتوي على أعداد صحيحة مفصولة بفجوة).

مثال

إدخال

100 150 120 150 80

إخراج

4 1 3 1 5 & nbsp;

تلميح

There will be no clue here, decide for yourself!

main.py
اختبار 1
اختبار 2
اختبار 3
اختبار 4
اختبار 5
اختبار 6
اختبار 7
اختبار 8
اختبار 9
اختبار 10
حل المطور
# Получаем на вход строку с очками, разделенными пробелами
scores_str = input().split()

# Создаем пустой список, в который будем складывать числовые значения очков
scores = []
# С помощью цикла for проходим по каждому элементу в списке строк
for s in scores_str:
    # Преобразуем каждую строку в целое число и добавляем в список scores
    scores.append(int(s))

# Создаем список для будущих рангов, по размеру такой же, как список очков
# Изначально он может быть заполнен любыми значениями, например, нулями
ranks = [0] * len(scores)

# Главный цикл: проходим по каждому очку в списке, чтобы вычислить его ранг
# Переменная 'i' будет индексом текущего игрока
for i in range(len(scores)):
    # Для каждого очка начинаем считать ранг с 1 (самый высокий ранг)
    current_rank = 1
    # Вложенный цикл: сравниваем текущее очко (scores[i]) со всеми остальными в списке
    # Переменная 'j' будет индексом игрока, с которым мы сравниваем
    for j in range(len(scores)):
        # Если мы находим очко (scores[j]), которое строго больше текущего (scores[i])...
        if scores[j] > scores[i]:
            # ...то ранг нашего текущего игрока 'i' становится хуже, поэтому увеличиваем его на 1
            current_rank += 1
    
    # После сравнения со всеми остальными, записываем вычисленный ранг в список рангов
    # на ту же позицию 'i', где находится очко этого игрока
    ranks[i] = current_rank

# Выводим итоговый список рангов
# Проходим циклом по всем элементам списка ranks
for r in ranks:
    # Печатаем каждый ранг, добавляя после него пробел, чтобы все было в одну строку
    print(r, end=' ')

🎉 تهانينا! 🎉

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

AD

إعلان

red-snake blue-snake green-snake

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

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

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