如何在Python中对多个整数进行排序而不使它们成为数组或列表

如何在Python中对多个整数进行排序而不使它们成为数组或列表,python,Python,我只是在学习编程,我已经开始学习Python了。我有一项任务要做: 用4名玩家模拟游戏。每个玩家掷一个骰子,直到掷出6个为止,然后下一个玩家继续掷骰子。在大多数尝试中投6球的玩家是赢家。程序应该写下玩家投掷的是谁以及他尝试了多少次。如果两名玩家在相同的尝试次数中投掷6次,则先前投掷的玩家获胜 任务来自pythonladies顺便说一句,目前im无法按降序排序并选择获胜者。我不想在很多情况下(如果,如果其他),我也在第五章,我没有学习数组/列表,所以我想让你不用它。以下是我目前的代码: hrac表

我只是在学习编程,我已经开始学习Python了。我有一项任务要做: 用4名玩家模拟游戏。每个玩家掷一个骰子,直到掷出6个为止,然后下一个玩家继续掷骰子。在大多数尝试中投6球的玩家是赢家。程序应该写下玩家投掷的是谁以及他尝试了多少次。如果两名玩家在相同的尝试次数中投掷6次,则先前投掷的玩家获胜

任务来自pythonladies顺便说一句,目前im无法按降序排序并选择获胜者。我不想在很多情况下(如果,如果其他),我也在第五章,我没有学习数组/列表,所以我想让你不用它。以下是我目前的代码:

hrac表示玩家
pokusy表示尝试

from random import randrange, random

hrac1 = 0
pokusy1 = 0

hrac2 = 0
pokusy2 = 0

hrac3 = 0
pokusy3 = 0

hrac4 = 0
pokusy4 = 0

while hrac4 != 6:
    while True:
        if hrac1 != 6:
            hrac1 = randrange(1, 7)
            pokusy1 = pokusy1 + 1
            print("Hráč 1 hodil: ", hrac1, " Toto bol jeho: ",pokusy1," pokus")
        else:<br>
            break
    while True:<br>
        if hrac2 != 6:
            hrac2 = randrange(1, 7)
            pokusy2 = pokusy2 + 1
            print("Hráč 2 hodil: ", hrac2, " Toto bol jeho: ",pokusy2," pokus")
        else:
            break
    while True:<br>
        if hrac3 != 6:
            hrac3 = randrange(1, 7)
            pokusy3 = pokusy3 + 1
            print("Hráč 3 hodil: ", hrac3, " Toto bol jeho: ",pokusy3," pokus")
        else:
            break
    while True:
        if hrac4 != 6:
            hrac4 = randrange(1, 7)
            pokusy4 = pokusy4 + 1
            print("Hráč 4 hodil: ", hrac4, " Toto bol jeho: ",pokusy4," pokus")
        else:
            break
从随机导入随机范围,随机
hrac1=0
pokus1=0
hrac2=0
pokusy2=0
hrac3=0
pokusy3=0
hrac4=0
pokusy4=0
而hrac4!=6:
尽管如此:
如果hrac1!=6:
hrac1=随机范围(1,7)
pokus1=pokus1+1
印刷品(“Hráč1 hodil:”,hrac1,“Toto bol jeho:”,Pokus1,“pokus”)
其他:
打破 如果为True:
如果hrac2!=6: hrac2=随机范围(1,7) pokusy2=pokusy2+1 印刷品(“Hráč2 hodil:”,hrac2,“Toto bol jeho:”,pokusy2,“pokus”) 其他: 打破 如果为True:
如果hrac3!=6: hrac3=随机范围(1,7) pokusy3=pokusy3+1 印刷品(“Hráč3 hodil:”,hrac3,“Toto bol jeho:”,pokusy3,“pokus”) 其他: 打破 尽管如此: 如果hrac4!=6: hrac4=随机范围(1,7) pokusy4=pokusy4+1 印刷品(“Hráč4 hodil:”,hrac4,“Toto bol jeho:”,pokusy4,“pokus”) 其他: 打破

也可简化代码,但请注意:(< / P > > P>因为你不知道列表和数组,所以我可以告诉你,我是C++程序员时的解决方案:)

让我们想象一下这些尝试次数的样本数:

pokusy1 = 1
pokusy2 = 2
pokusy3 = 3
pokusy4 = 4

temp = 0
然后你只需要用这种方式比较它们:

if(pokusy1 > pokusy2):
    temp = pokusy1
else:
    temp = pokusy2
if(pokusy3 > temp):
    temp = pokusy3
if(pokusy4 > temp):
    temp = pokusy4

您不需要排序来跟踪最大值。此外,如果您了解函数,您可以编写一个函数来简化代码,该函数模拟滚动模具直到滚动6次,然后返回所需的滚动次数。这将减少代码重复。我可以问你如何得到最大的数字吗?另外,谢谢你的提示,骰子会试试的!:)将最大值初始化为类似-1的值。将每个新值与当前最大值进行比较。如果新值大于当前最大值,则更新最大值。处理完所有4个变量后,它将保留这4个变量的最大值。或者(可能更好一点)。使用第一个变量初始化最大值,然后将每个后续值与该最大值进行比较,根据需要更新最大值。