这个项目需要一个小时才能完成,我已经尝试了所有我知道的方法,但是我无法使这部分工作。真的需要帮助。我想更改一个计数器值,将结果相加,所以我不想打印每个计数器的总数,而是想打印一个字符串
# Compare countA to distance:
def raceAlgorithm(jack, slow, thunder) :
# Race start point
countA = 0
# Length of the race
distance = 20
# message afer race is done
msg = '\nRace Finished\nGetting results.'
while countA != distance :
dice = randint( 1, 6 )
sleep( 1 )
countA += 1
if dice <= 2 :
jack += 1
# print(a)
elif dice <= 4 :
slow += 1
# print(b)
else :
thunder += 1
# print(c)
if jack + slow + thunder == distance :
print( msg )
Position.append(jack)
Position.append( slow )
Position.append( thunder )
Position.sort( reverse=True )
# the horses totals
print( *Position, sep='\n' )
if Position[0] == jack:
print( '\nThe winner is: ' + a )
elif Position[0] == slow :
print( '\nThe winner is: ' + b )
elif Position[0] == thunder :
print( '\nThe winner is: ' + c )
else :
print( )
例如,如果杰克得到10而缓慢得到5,而不是打印10和5,我希望结果是一匹马的名字。问题是因为每匹马的结果每次都是随机的,所以我无法更改特定的整数。我需要改为将其添加到列表之前。因此,如果jack到达它在该列表上的打印插孔的位置,那么它就会到来。
答案 0 :(得分:1)
将Position
列表更改为同时包含名称和值的列表,然后可以按值排序并同时打印两者。
from operator import itemgetter
Position = [('jack', jack), ('slow', slow), ('thunder', thunder)]
Position.sort(key=itemgetter(1), reverse=True)
print(*Position)
print('\nThe winner is:', Position[0][0])