CCCPaste

Student Credits

def students_credits(*args):
    dictionary = {}
    credits_collected = 0
    for course in args:
        course_split = course.split('-')
        course_name = course_split[0]
        max_course_credits = int(course_split[1])
        max_test_points = int(course_split[2])
        diyan_points = int(course_split[3])
        percentage_test_diyan = diyan_points/max_test_points
        current_diyan_credit = max_course_credits * percentage_test_diyan
        credits_collected += current_diyan_credit
        dictionary[course_name] = current_diyan_credit
     
    result = ''    
    if credits_collected >= 240:
        result += f"Diyan gets a diploma with {credits_collected:.1f} credits.\n"
        
    else:
        diff = 240 - credits_collected
        result += f"Diyan needs {diff:.1f} credits more for a diploma.\n"
        
    sorted_dictionary = dict(sorted(dictionary.items(), key=lambda x: -x[1]))
    
    for el, score in sorted_dictionary.items():
        result += f'{el} - {score:.1f}\n'
        
    return result