Python проблема списка с симулятором - PullRequest
0 голосов
/ 29 мая 2020

Привет, я пытаюсь сделать симулятор Powerball для школы, но по какой-то причине не выводится окончательное значение pbsim. Кроме того, я бы хотел, чтобы списки pbsim и wb постоянно менялись внутри, пока l oop, если бы кто-нибудь мог понять, как это сделать, он был бы очень признателен :) спасибо

Этот код для моего школьное задание, где я пытаюсь создать симулятор Powerball, поэтому я хочу, чтобы люди могли вводить значения в форму, и этот код будет запускаться и возвращать количество раз, которое код должен был выполняться, пока не будет достигнута победа!

wb и pbsim должны быть постоянно случайными каждый раз, когда проходит l oop, но в настоящее время это не так. Также я не хочу, чтобы какие-либо значения в одном списке повторялись.

Итак, в заключение, мне нужно, чтобы pbsim и wb были случайными и менялись каждый раз, когда активен while l oop == false

python код

import random
nwb = 5     # number of winning balls
rwb = 10    # range of winning balls
npb = 2     # number of powerballs
rpb = 20    # range of powerballs

# randomly draw a list of winning balls
actual = [] 
while nwb > 0:
    x = random.randint(1, rwb)
    if x not in actual:
        actual.append(x)
        nwb = nwb - 1
        actual.sort()

# randomly draw a list of winning powerballs
pbactual = []   
while npb > 0:
    x = (random.randint(1, rpb))
    if x not in pbactual:
        pbactual.append(x)
        npb = npb - 1
        pbactual.sort()        
       

win = False
run = True
count = 0
nwb2 = nwb
npb2 = npb
wb = []     # list of randomly choosen balls 
pbsim = []  # list of randomly choosen powerballs 

while win == False:
    while run:
        x = random.randint(1, rwb)
        if x not in wb:
            wb.append(x)
            pbactual.sort()

        if len(wb) == nwb2:
            while npb2 > 0:
                x = random.randint(1, rpb)
                if x not in pbsim:
                    pbsim.append(x)
                    npb2 = npb2 - 1
            run = False



    actual.sort()
    wb.sort()
    pbactual.sort()
    pbsim.sort()
    count += 1
    print(actual, wb, pbactual, pbsim)

1 Ответ

0 голосов
/ 04 июня 2020

некоторые переменные равны нулю, поэтому он попадает в бесконечное l oop. я изменил это. изменения находятся в изменениях . Теперь он показывает результат.

import random
nwb = 5     # number of winning balls
rwb = 10    # range of winning balls
npb = 2     # number of powerballs
rpb = 20    # range of powerballs

# randomly draw a list of winning balls
actual = []
while nwb > 0:
    x = random.randint(1, rwb)
    if x not in actual:
        actual.append(x)
        nwb = nwb - 1
        actual.sort()

# randomly draw a list of winning powerballs
pbactual = []
while npb > 0:
    x = (random.randint(1, rpb))
    if x not in pbactual:
        pbactual.append(x)
        npb = npb - 1
        pbactual.sort()


win = False
run = True
count = 0
**nwb2 = len(actual)
npb2 = len(pbactual)**
wb = []     # list of randomly choosen balls
pbsim = []  # list of randomly choosen powerballs

while win == False:
    while run:
        x = random.randint(1, rwb)
        if x not in wb:
            wb.append(x)
            pbactual.sort()

        if len(wb) == nwb2:
            while npb2 > 0:
                x = random.randint(1, rpb)
                if x not in pbsim:
                    pbsim.append(x)
                    npb2 = npb2 - 1
            run = False
            **win = True**



    actual.sort()
    wb.sort()
    pbactual.sort()
    pbsim.sort()
    count += 1
    print(actual, wb, pbactual, pbsim)
...