Создание списка python и отображение элементов списка в поле ввода - PullRequest
0 голосов
/ 16 июня 2020

Здравствуйте, я новичок в программировании здесь (глава 5 в учебнике). Я хочу ввести x количество студентов и x количество оценок на ученика . в конечном итоге я рассчитаю средний балл на ученика, но на данный момент я борюсь с вводом.

number_students = int(input("Number of Students: ")) #get number of students
number_grades = int(input ("How many grades per student: ")) #get number of grades per student
student_list = [] #create empty student list
student_grade = [] #create empty grade list
for num in range(number_students):
    student_list.append(input("Enter Student Name: ")) #create an array based on number of students
    for num in range (number_grades):
        student_grade.append(int(input("Enter grade for #enter student name here# "))) #create an array based on number of grades ```

Я не могу получить имя ученика, которое будет отображаться в поле ввода student_grade, а во-вторых, есть ли там лучший способ получить список оценок, соответствующий правильному учащемуся, чем иметь действительно длинный список оценок? Может быть, если каждая запись с именем учащегося будет списком, а затем в него будет встроен список оценок?

Ответы [ 2 ]

0 голосов
/ 16 июня 2020

Вы можете использовать python словари:

number_students = int(input("Number of Students: ")) #get number of students
number_grades = int(input ("How many grades per student: ")) #get number of grades per student
student_list = {} #create empty student dictionary
for num in range(number_students):
    name = input("Enter Student Name: ")
    student_list[name] = []
    for num in range(number_grades):
        grade = input(f"Enter grade for {name} ")
        student_list[name] += [grade]

Вывод:

Number of Students: 3
How many grades per student: 2
Enter Student Name: Johnny
Enter grade for Johnny 80
Enter grade for Johnny 92
Enter Student Name: Manny
Enter grade for Manny 78
Enter grade for Manny 59
Enter Student Name: Sarah
Enter grade for Sarah 98
Enter grade for Sarah 89
{'Johnny': ['80', '92'], 'Manny': ['78', '59'], 'Sarah': ['98', '89']}
0 голосов
/ 16 июня 2020

Один из способов - использовать список словарей:

number_students = int(input("Number of Students: "))
number_grades = int(input ("How many grades per student: "))
for num in range(number_students):
    student_name = input("Enter Student Name: ")
    student_grades = []
    for num in range(number_grades):
        student_grades.append(int(input(f"Enter {student_name}'s grade")))
    student_list.append({
                        'student': student_name,
                        'grades': student_grades
                 })

print(student_list[0]['student'])
print(student_list[0]['grades'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...