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()
コードが目に基づいて学生を注文することになっている。この部分で、[ヘルプ] EIR平均(最低から最高)、しかし、それはそれをしません。[ヘルプ]
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
@Ocean、私はsnamecharmerbが文字列として比較しているので、 '' 10 "<" 4 "'とヒントしていると思います。pythonはデフォルトで、最も低いものから高いものにソートします。 '' lineList.sort(reverse =真) ' –