Ошибка с кодом, который должен сортировать студентов в роли класса - PullRequest
1 голос
/ 05 апреля 2019

Цель кода:

Напишите программу, которая берет список имен учеников и сортирует их для создания списка занятий.Список имен будет указан в одну строку, разделенную одним пробелом.Имена учеников всегда будут в заглавных буквах (первая буква заглавной, а остальная часть имени в нижнем регистре).

Сортировка должна выполняться в алфавитном порядке.

Что необходимо сделатьвывод:

Students: Peng Ivan Alan Jodi Macy
Class Roll
Alan
Ivan
Jodi
Macy
Peng

Мой код:

names = input('Students: ')
print('Class Roll')
output = names.sort()
print(output)

Я довольно новичок в программировании.

Ответы [ 4 ]

1 голос
/ 05 апреля 2019

Вы можете сгенерировать этот вывод, используя следующий код:

names = input('Students: ')
print('Class Roll')
output = sorted(names.split())
print(*output, sep='\n')

Обратите внимание на две вещи: *output использует распаковку элементов в списке, а я использую параметр sep, который позволяет вам выбрать разделитель элементов, которые вы хотите распечатать. Другими словами, каждый элемент в выводе печатается через новую строку.

0 голосов
/ 05 апреля 2019

Вам нужно будет превратить строку в список имен, а затем вызвать сортировку в массиве, например, так.


   names_list = names.split(' ')

   #Although items in a List are 
   #normally sorted out of the box

   output = sorted(names_list) 

   print(output) #['Alan', 'Ivan', 'Jodi', 'Macy', 'Peng']

   #Note: if you want to print it one item at a time, you will 
   #have too loop through the List and print each of them. e.g.,

   for name in names_array:
       print(name)
0 голосов
/ 05 апреля 2019

Это должно сработать, оно будет напечатано, когда вы введете «done»:

list_names = []
while True:
   a = input("Enter a name: ")
   if a == "done" or a == "Done" or a == "DONE":
        list_names.sort()
        print(list_names)
   else:
        list_names.append(a)
0 голосов
/ 05 апреля 2019

Вам нужно разделить ввод по пробелам, а затем отсортировать полученный список.

Кроме того, метод sort() изменяет список на месте, он не возвращает новый список.

Если вы печатаете список, он печатает его в одну строку с квадратными скобками вокруг него и кавычками вокруг строк. Если вы хотите напечатать каждое имя в отдельной строке, вы должны выполнить цикл.

names = input('Students: ').split()
names.sort()
print("Class Roll")
for name in names:
    print(name)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...