Я работал над этим кодом (на python), чтобы распечатать CSV-файл, отсортированный. Первый выбор отлично работает и сортирует его по алфавиту. Однако раздел Choice 2 должен сортировать файл csv с наивысшим результатом. текст/файл CSV (Что здесь не так с выбором 2?
name, score, out of:
Ben,5,20
James,6,20
Adam,12,20
Will,20,20
код:
import operator
import csv
file = open("scores.txt", "r")
scores = csv.reader(file, delimiter=",")
sort = sorted(scores)
for i in range(0, len(sort)):
sort[i].append((max(sort[i][1:2])))
#Alphabetical Order
choice = input("Choice: ")
if choice == "1":
sort = list(sorted(sort,key = operator.itemgetter(0), reverse=False))
print("\nAlphabetical Order:")
print("===================")
for i in range(0, len(sort)):
print("Name: ", sort[i][0], "\tScore: ", sort[i][1])
#Highest score
#sort = sorted(scores)
elif choice == "2":
print("\nHigh Scores:")
print("============")
sort = list(sorted(sort,key = operator.itemgetter(1, 2),reverse=True))
for i in range(0, len(sort)):
print("Name:", sort[i][0], "\tScore:", sort[i][1], "Out of", sort[i][2])
не сравнивать строки с 'is'. это для личности. http://stackoverflow.com/questions/1504717/why-does-comparing-strings-in-python-using-either-or-is-sometimes-produce –
yes, Вы правы – BigBang
Это, вероятно, не главная проблема в код op. Если он использует 'python 3.x',' input() 'возвращает строку. Однако стоит отметить, что он работает над более ранними версиями python. – VHarisop