-2
# function to calculate average marks of the list
def average_marks(marks):
    total_sum_of_scores = sum(marks)
    total_num_of_sub = len(marks)
    average_marks = total_sum_of_scores / total_num_of_sub
    return average_marks

# funtion to compute grade based on average_marks
def compute_grade(average_marks):
    if average_marks >= 80:
        grade = "A"
    elif average_marks >= 60:
        grade = "B"
    elif average_marks >= 50:
        grade = "C"
    else:
        grade = "F"
    return grade


marks = [75,77,94,78,83,86,72]
average_marks = average_marks(marks)
grade = compute_grade(average_marks)
print("Your result is: ",average_marks , "and your grade is:", grade)

Instead of using a predefined list. I want to take input from users. Users will enter number and when "done" is entered, the programme is terminated. Below is what i have tried but no luck.

def marks():
n = int(input("Enter your number"))
marks = []

for i in range(n):
    element = int(input("Please enter students score: "))
    marks.append(element)
    result =  marks
print(marks)

marks()

icanbe444
  • 11
  • 3
  • 1
    Does this answer your question? [Get a list of numbers as input from the user](https://stackoverflow.com/questions/4663306/get-a-list-of-numbers-as-input-from-the-user) – Tomerikoo Jan 23 '22 at 15:23
  • Also you're overriding `marks` use another name. – Pedro Maia Jan 23 '22 at 15:24
  • Just call `input()` and save the return value until the user enters `"done"` in a loop. You can stop the loop using a `break` statement. – martineau Jan 24 '22 at 19:42

1 Answers1

0

Try this:

marks = input("Please enter your scores: ").split()
Blaco
  • 109
  • 8