应将学生分类为班级角色的代码错误

时间:2019-04-05 01:21:13

标签: python sorting

代码的目的:

编写一个程序,该程序获取学生姓名列表并对其进行排序以创建班级名册。名称列表将在一行中用空格隔开。学生的姓名将始终以标题区分大小写(首字母大写,其余姓名小写)。

它必须按字母顺序排序。

输出内容:

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 个答案:

答案 0 :(得分:1)

您可以使用以下代码生成该输出:

import 'dart:convert';
import 'dart:io';

main() {
  String manga = new File('manga.json').readAsStringSync();
  int t1 = DateTime.now().millisecondsSinceEpoch;

  Map<String, dynamic> data = json.decode(manga);
  Map<String, dynamic> jChapters = data['chapter'];
  jChapters.removeWhere((_, m) => m['lang_code'] != 'gb');

  Map<String, Chapter> chapters = jChapters.map((_, m) {
    String number = m['chapter'];
    return MapEntry(number, Chapter(number, m['title']));
  });

  int t2 = DateTime.now().millisecondsSinceEpoch;
  print(t2 - t1);

  print(chapters);
}

class Chapter {
  String number;
  String title;

  Chapter(this.number, this.title);

  @override
  String toString() => 'Chapter #$number:$title';
}

请注意两件事,names = input('Students: ') print('Class Roll') output = sorted(names.split()) print(*output, sep='\n') 正在使用解压缩列表中的元素,而我正在使用参数*output,该参数允许您选择要打印的元素的分隔符。换句话说,输出中的每个元素都用新行分开打印。

答案 1 :(得分:0)

您需要将输入分成空格字符,然后对结果列表进行排序。

此外,sort()方法会在适当位置修改列表,但不会返回新列表。

如果打印列表,它将打印在一行上,并在方括号和字符串两边加上引号。如果要在每个行上打印每个名称,则必须循环。

names = input('Students: ').split()
names.sort()
print("Class Roll")
for name in names:
    print(name)

答案 2 :(得分:0)

这应该起作用,当您输入“完成”时,它将打印:

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)

答案 3 :(得分:0)

您将必须将字符串转换为名称列表,然后像这样对数组调用sort。


   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)