usmiwka80

11. SoftUni Course Planning

Feb 23rd, 2025 (edited)
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.40 KB | Software | 0 0
  1. def add(schedule_lesson, lesson_title):
  2.     if lesson_title not in schedule_lesson:
  3.         schedule_lesson.append(lesson_title)
  4.  
  5.        
  6. def insert(schedule_lessson, lesson_title, index):
  7.     if lesson_title not in schedule_lessson:
  8.         schedule_lessson.insert(index, lesson_title)
  9.  
  10.  
  11. def remove(schedule_lesson, lesson_title):
  12.     lesson_exersice = lesson_title + "-Exercise"
  13.     if lesson_title in schedule_lesson:
  14.         schedule_lesson.remove(lesson_title)
  15.         if lesson_exersice in schedule_lesson:
  16.             schedule_lesson.remove(lesson_exersice)
  17.  
  18. def swap(schedule_lesson, lesson_title_1, lesson_title_2):
  19.     lesson_exercise_1 = lesson_title_1 + "-Exercise"
  20.     lesson_exercise_2 = lesson_title_2 + "-Exercise"
  21.  
  22.     if lesson_title_1 in schedule_lesson and lesson_title_2 in schedule_lesson:
  23.         pos_1 = schedule_lesson.index(lesson_title_1)
  24.         pos_2 = schedule_lesson.index(lesson_title_2)
  25.         schedule_lesson[pos_1], schedule_lesson[pos_2] = schedule_lesson[pos_2], schedule_lesson[pos_1]
  26.  
  27.         if lesson_exercise_1 in schedule_lesson and lesson_exercise_2 in schedule_lesson:
  28.             schedule_lesson[pos_1 + 1], schedule_lesson[pos_2 + 1] = \
  29.                 schedule_lesson[pos_2 + 1], schedule_lesson[pos_1 + 1]
  30.  
  31.         elif lesson_exercise_1 in schedule_lesson:
  32.             pos_3 = schedule_lesson.index(lesson_exercise_1)
  33.             exercise_3 = lesson_exercise_1
  34.             schedule_lesson.remove(schedule_lesson[pos_3])
  35.             schedule_lesson.insert(pos_2 + 1,lesson_exercise_1)
  36.  
  37.         elif lesson_exercise_2 in schedule_lesson:
  38.             pos_4 = schedule_lesson.index(lesson_exercise_2)
  39.             exercise_2 = lesson_exercise_2
  40.             schedule_lesson.remove(schedule_lesson[pos_4])
  41.             schedule_lesson.insert(pos_1 + 1, exercise_2)
  42.  
  43.  
  44. def exercise(schedule_lesson, lesson_title, parts):
  45.     lesson_exercise = lesson_title + "-Exercise"
  46.     if lesson_title not in schedule_lesson:
  47.         schedule_lesson.append(lesson_title)
  48.         schedule_lesson.append(f"{lesson_title}-{parts}")
  49.     elif lesson_title in schedule_lesson and lesson_exercise not in schedule_lesson:
  50.         schedule_lesson.append(f"{lesson_title}-{parts}")
  51.  
  52. def process_commands(schedule_lesson, commands):
  53.     for command in commands:
  54.         parts = command.split(":")
  55.         if parts[0] == "Add":
  56.             lesson_title = parts[1]
  57.             add(schedule_lesson, lesson_title)
  58.  
  59.         elif parts[0] == "Insert":
  60.             lesson_title = parts[1]
  61.             index = int(parts[2])
  62.             insert(schedule_lesson, lesson_title, index)
  63.  
  64.         elif parts[0] == "Remove":
  65.             lesson_title = parts[1]
  66.             remove(schedule_lesson, lesson_title)
  67.  
  68.         elif parts[0] == "Swap":
  69.             lesson_title_1 = parts[1]
  70.             lesson_title_2 = parts[2]
  71.             swap(schedule_lesson, lesson_title_1, lesson_title_2)
  72.  
  73.         elif parts[0] == "Exercise":
  74.             lesson_title = parts[1]
  75.             exercise(schedule_lesson, lesson_title, parts[0])
  76.     commands = commands.remove(command)
  77.     return schedule_lesson
  78.  
  79.  
  80. schedule_lesson = input().split(', ')
  81. commands = []
  82. while True:
  83.     command = input()
  84.     if command == "course start":
  85.         break
  86.     commands.append(command)
  87.     result = process_commands(schedule_lesson, commands)
  88. for index, item in enumerate(result, start=1):
  89.     print(f"{index}.{item}")
  90.  
Advertisement
Add Comment
Please, Sign In to add comment