Как записать входы при использовании «For Loop» - PullRequest
0 голосов
/ 04 мая 2019

Я пытаюсь попросить пользователя ввести, сколько классов у него есть (x), спросить: «Каковы ваши оценки в этих классах?» x количество раз, и запишите все введенные оценки, чтобы использовать их позже.

Я пытался присвоить вопрос переменной и попросить напечатать переменную, но я получаю только последнее введенное число. Я не хочу печатать числа, я хочу сохранить их на потом, чтобы я мог сложить их вместе. Я просто использовал функцию печати, чтобы увидеть, как будут храниться мои числа, если присвоение переменной действительно сработало. Как мне записать все введенные числа, чтобы потом добавить и вычислить средний балл?

numofclasses = int(input("How many honors classes do you have?: "))
for i in range(numofclasses):
  grades = str(input("Enter the unweighted grade from one class "))

print(grades)

Я хочу записать все введенные номера, но с помощью опции print я получу только последний введенный номер.

Ответы [ 4 ]

2 голосов
/ 04 мая 2019

То, что вы хотите использовать, это список , который используется для контейнера, который содержит последовательность типов данных, таких как целое число, символы и т. Д.,

Подумайте об этом так, если вы хотите использовать 3 переменные в Python, что бы вы обычно делали

a = 1
b = 2
c = 3

Это прекрасно работает, но что, если число переменных равно 50 или 100, сколько переменных вы будете определять, следовательно, вам понадобится контейнер для их хранения, в который и входит список. Поэтому мы просто делать

li = [1,2,3]

И получить доступ к этим переменным через индексы, которые начинаются с 0

a[0] #1
a[1] #2
a[2] #3

Имея это в виду, мы бы сделали!

numofclasses = int(input("How many honors classes do you have?: "))

#List to save all grades, defined by assigning variable to []
all_grades = []
for i in range(numofclasses):

    #Take grades from the user
    grades = input("Enter the unweighted grade from one class ")

    #Append the grades to the list, using list.append function
    all_grades.append(grades)

#Loop through the list to print it
for item in all_grades:
    print(item)

#Print all grades in a single line by joining all items of list in a string
s = " ".join(all_grades)
print(s)

И вывод будет выглядеть как

How many honors classes do you have?: 3
Enter the unweighted grade from one class A
Enter the unweighted grade from one class B
Enter the unweighted grade from one class C
#All grades in different lines
A
B
C
#All grades in single line
A B C
0 голосов
/ 04 мая 2019

Вот как это сделать:

class_dict = {}
numOfClasses = input("How many classes do you take? Enter here : ")
for i in range(int(numOfClasses)):
    class_dict["class" + str(i +1)] = input("Enter your grade for class " + str(i +1) + ":  ")

print(class_dict)

Выше должно это сделать.

0 голосов
/ 04 мая 2019

Мне кажется, есть пара вариантов, которые могут подойти.

Печать входных данных на каждой итерации:

numofclasses = int(input("How many honors classes do you have?: "))
for i in range(numofclasses):
    grades = str(input("Enter the unweighted grade from one class "))
    print(grades) # move print to inside of loop

Сохранение значений в списке для последующей печати:

numofclasses = int(input("How many honors classes do you have?: "))
grades = []
for i in range(numofclasses):
    grades.append(str(input("Enter the unweighted grade from one class ")))

print(grades) # will look like ["A", "B", "C", "B"]
0 голосов
/ 04 мая 2019

Вы можете использовать list для хранения оценок. На каждой итерации цикла вы можете добавлять новую оценку в этот список, используя встроенную функцию append.

grades = []
numofclasses = int(input("How many honors classes do you have?: "))
for i in range(numofclasses):
  grade = str(input("Enter the unweighted grade from one class "))
  grades.append(grade)

print(grades)

выход

How many honors classes do you have?: 5
Enter the unweighted grade from one class 75
Enter the unweighted grade from one class 80
Enter the unweighted grade from one class 90
Enter the unweighted grade from one class 55
Enter the unweighted grade from one class 79

['75', '80', '90', '55', '79']

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...