将计数器值更改为字符串

时间:2019-11-17 21:28:37

标签: python python-3.x

这个项目需要一个小时才能完成,我已经尝试了所有我知道的方法,但是我无法使这部分工作。真的需要帮助。我想更改一个计数器值,将结果相加,所以我不想打印每个计数器的总数,而是想打印一个字符串

# 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到达它在该列表上的打印插孔的位置,那么它就会到来。

1 个答案:

答案 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])