Year10 - Year11 A453 Арифметический опрос -Есть ли способ исправить этот код на Python?
Все это, насколько мне известно, работает правильно. Я оставляю это здесь, так что есть какой-то контекст.
file = open
def menu():
entry = False
while entry == False:
print(' ***************************')
print(' * Arithmetic Quiz Scores! *')
print(' ***************************')
print('')
print('')
print('1. Alphabetic Order (Highest)')
print('')
print('2. Highest - Lowest')
print('')
print('3. Average (Highest-Lowest)')
print('')
print('4. Quit')
print('')
choice=input('What do you want to do - 1, 2, 3, 4? ')
if choice == '1':
print("")
alphabetic_order()
entry = False
elif choice == '2':
print("")
highest_lowest()
entry = False
elif choice == '3':
print("")
average()
entry = False
elif choice == '4':
print("Goodbye")
entry = True
else:
print("")
print("Im Sorry But That Is Not An Option, Please Choose Again!")
input("Press Enter!")
print("")
def alphabetic_order():
inputFile = open("Names.txt", 'r')
lineList = inputFile.readlines()
lineList.sort()
for line in lineList:
line = line.strip()
parts = line.split(" - ")
name = parts[0]
score1 = parts[1]
score2 = parts[2]
score3 = parts[3]
alphabetical=(max(score1, score2, score3))
print(" "+ name + " " + alphabetical)
print("")
inputFile.close()
Это содержимое файла Names.txt
:
Tim - 5 - 6 - 7
Chloe - 6 - 3 - 9
Zack - 9 - 10 - 8
Bob - 7 - 4 - 6
Bo - 8 - 9 - 9
Adam - 8 - 4 - 5
Joe - 3 - 2 - 5
Zoey - 6 - 6 - 6
Larry - 7 - 3 - 3
Mary - 5 - 6 - 9
[FIXED] На данный момент код не сортирует результаты в высоких до низких выводит большинство из них низшего к высшему и I считают, что для одного из них, который имеет 10 баллов, код думает, что это просто 1. [FIXED]
def highest_lowest():
inputFile = open("Names.txt", 'r')
lineList = inputFile.readlines()
lineList.sort()
for line in lineList:
line = line.strip()
parts = line.split(" - ")
name = parts[0]
score1 = int(parts[1])
score2 = int(parts[2])
score3 = int(parts[3])
total=(score1, score2, score3)
highestlowest=sorted(total, key=int, reverse=True)
print(" "+ name + " " + str(highestlowest))
print("")
inputFile.close()
[HELP] в этой части кода предполагается сделать заказ студентов на основе й EIR средняя (от высшего к низшему), однако он не делает этого. [HELP]
def average():
inputFile = open("names.txt", "r")
lineList = inputFile.readlines()
lineList.sort()
for line in lineList:
line = line.strip()
parts = line.split(" - ")
name = parts[0]
score1 = parts[1]
score2 = parts[2]
score3 = parts[3]
total= int(score1) + int(score2) + int(score3)
average_= int(total) /3
print (" "+ name + " " + str(round(average_)))
print("")
inputFile.close()
menu()
Не могли бы вы помочь мне понять, почему эти цифры не упорядочиваются, как я ожидал? Прошу прощения, если это не то, как я должен задавать вопросы, я новичок.
Как вы думаете, Python будет сортировать строки «1» и «10» по-разному для целых чисел от 1 до 10? – snakecharmerb
@snakecharmerb это не то, что я думаю, что это именно то, что кажется. – Ocean
@ Океан, я думаю, что snamecharmerb намекал на то, что '' 10 "<" 4 "', поскольку они сравниваются как строки, а python по умолчанию будет сортировать от самого низкого до самого высокого, вы можете отменить этот порядок, указав 'lineList.sort (reverse = True) ' –