Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 35 additions & 17 deletions exercises/concept/making-the-grade/.meta/exemplar.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,11 @@
def round_scores(student_scores):
"""Round all provided student scores.

:param student_scores: list - float or int of student exam scores.
:return: list - student scores *rounded* to nearest integer value.
Parameters:
student_scores (list[float|int]): Student exam scores.

Returns:
list[int]: Student scores *rounded* to the nearest integer value.
"""

rounded = []
Expand All @@ -17,8 +20,11 @@ def round_scores(student_scores):
def count_failed_students(student_scores):
"""Count the number of failing students out of the group provided.

:param student_scores: list - containing int student scores.
:return: int - count of student scores at or below 40.
Parameters:
student_scores (list[int]): Student scores as ints.

Returns:
int: The count of student scores at or below 40.
"""

non_passing = 0
Expand All @@ -31,9 +37,12 @@ def count_failed_students(student_scores):
def above_threshold(student_scores, threshold):
"""Determine how many of the provided student scores were 'the best' based on the provided threshold.

:param student_scores: list - of integer scores.
:param threshold: int - threshold to cross to be the "best" score.
:return: list - of integer scores that are at or above the "best" threshold.
Parameters:
student_scores (list[int]): Integer scores.
threshold (int): The threshold to cross to be the "best" score.

Returns:
list[int]: Integer scores that are at or above the "best" threshold.
"""

above = []
Expand All @@ -47,11 +56,14 @@ def above_threshold(student_scores, threshold):
def letter_grades(highest):
"""Create a list of grade thresholds based on the provided highest grade.

:param highest: int - value of highest exam score.
:return: list - of lower threshold scores for each D-A letter grade interval.
For example, where the highest score is 100, and failing is <= 40,
The result would be [41, 56, 71, 86]:
Parameters:
highest: int - value of the highest exam score.

Returns:
list[int]: Lower threshold scores for each D-A letter grade interval.

For example, where the highest score is 100, and failing is <= 40,
The result would be [41, 56, 71, 86]:
41 <= "D" <= 55
56 <= "C" <= 70
71 <= "B" <= 85
Expand All @@ -66,11 +78,14 @@ def letter_grades(highest):


def student_ranking(student_scores, student_names):
"""Organize the student's rank, name, and grade information in ascending order.
"""Organize the student's rank, name, and grade information in descending order.

Parameters:
student_scores (list): Scores in descending order.
student_names (list[str]): Student names by exam score in descending order.

:param student_scores: list - of scores in descending order.
:param student_names: list - of string names by exam score in descending order.
:return: list - of strings in format ["<rank>. <student name>: <score>"].
Returns:
list[str]: Strings in format ["<rank>. <student name>: <score>"].
"""

results = []
Expand All @@ -84,8 +99,11 @@ def student_ranking(student_scores, student_names):
def perfect_score(student_info):
"""Create a list that contains the name and grade of the first student to make a perfect score on the exam.

:param student_info: list - of [<student name>, <score>] lists.
:return: list - first `[<student name>, 100]` or `[]` if no student score of 100 is found.
Parameters:
student_info (list[list[str, int]]): List of [<student name>, <score>] lists.

Returns:
list: First `[<student name>, 100]` found OR `[]` if no student score of 100 is found.
"""

result = []
Expand Down
50 changes: 34 additions & 16 deletions exercises/concept/making-the-grade/loops.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,11 @@
def round_scores(student_scores):
"""Round all provided student scores.

:param student_scores: list - float or int of student exam scores.
:return: list - student scores *rounded* to nearest integer value.
Parameters:
student_scores (list[float|int]): Student exam scores.

Returns:
list[int]: Student scores *rounded* to the nearest integer value.
"""

pass
Expand All @@ -14,8 +17,11 @@ def round_scores(student_scores):
def count_failed_students(student_scores):
"""Count the number of failing students out of the group provided.

:param student_scores: list - containing int student scores.
:return: int - count of student scores at or below 40.
Parameters:
student_scores (list[int]): Student scores as ints.

Returns:
int: The count of student scores at or below 40.
"""

pass
Expand All @@ -24,9 +30,12 @@ def count_failed_students(student_scores):
def above_threshold(student_scores, threshold):
"""Determine how many of the provided student scores were 'the best' based on the provided threshold.

:param student_scores: list - of integer scores.
:param threshold: int - threshold to cross to be the "best" score.
:return: list - of integer scores that are at or above the "best" threshold.
Parameters:
student_scores (list[int]): Integer scores.
threshold (int): The threshold to cross to be the "best" score.

Returns:
list[int]: Integer scores that are at or above the "best" threshold.
"""

pass
Expand All @@ -35,11 +44,14 @@ def above_threshold(student_scores, threshold):
def letter_grades(highest):
"""Create a list of grade thresholds based on the provided highest grade.

:param highest: int - value of highest exam score.
:return: list - of lower threshold scores for each D-A letter grade interval.
For example, where the highest score is 100, and failing is <= 40,
The result would be [41, 56, 71, 86]:
Parameters:
highest: int - value of the highest exam score.

Returns:
list[int]: Lower threshold scores for each D-A letter grade interval.

For example, where the highest score is 100, and failing is <= 40,
The result would be [41, 56, 71, 86]:
41 <= "D" <= 55
56 <= "C" <= 70
71 <= "B" <= 85
Expand All @@ -52,9 +64,12 @@ def letter_grades(highest):
def student_ranking(student_scores, student_names):
"""Organize the student's rank, name, and grade information in descending order.

:param student_scores: list - of scores in descending order.
:param student_names: list - of string names by exam score in descending order.
:return: list - of strings in format ["<rank>. <student name>: <score>"].
Parameters:
student_scores (list): Scores in descending order.
student_names (list[str]): Student names by exam score in descending order.

Returns:
list[str]: Strings in format ["<rank>. <student name>: <score>"].
"""

pass
Expand All @@ -63,8 +78,11 @@ def student_ranking(student_scores, student_names):
def perfect_score(student_info):
"""Create a list that contains the name and grade of the first student to make a perfect score on the exam.

:param student_info: list - of [<student name>, <score>] lists.
:return: list - first `[<student name>, 100]` or `[]` if no student score of 100 is found.
Parameters:
student_info (list[list[str, int]]): List of [<student name>, <score>] lists.

Returns:
list: First `[<student name>, 100]` found OR `[]` if no student score of 100 is found.
"""

pass
Loading