2015-04-02 5 views
-3

Я пытаюсь сделать программу ухода и, кажется, что по какой-то причине, моя программа продолжает цикл, даже если он должен. Он работал отлично до 1 добавил он youGot переменной. Не хватает слов, так:Почему мой питон программа продолжает цикл, даже если он должен?

Lorem Ipsum морковь, экологический томатный суп. И любой элемент Lorem. Но теперь смех жизни, это был инновационный целевой массы правоохранительных органов. Теплый салат рецепт или грустная массовая ultricies и др. Тем не менее, недвижимость закончила Пакистан, который он получает слой макросъемки. Dapibus Lacus eleifend Phasellus тоШз. Нам мудрый, который стал мишенью футбол, футбол в массы. DUIs facilisis facilisis Lectus, для того, чтобы тянуть жизни, много хороших вещей.

import random 

#generate numbers 

spinTime = float(random.randint(7, 18)) 

actualSpin = 0 


while(actualSpin != spinTime): 
    print(""" 
     B 7 @ 
     % # + 
     $ J & """) 

    actualSpin += 1 
    youGot = "Nothing" 
    print(" \n"*100) 

    print(""" 
     7 7 7 
     # $ J 
     & % & """) 

    actualSpin += 1 
    youGot = "7" 
    print(" \n" * 100) 

    print(""" 
     7 % 7 
     B B B 
     & % & """) 

    actualSpin += 1 
    youGot = "Bar" 
    print(" \n" * 100) 

    print(""" 
     $ # & 
     % % % 
     J J & """) 

    actualSpin += 1 
    youGot = "%" 
    print(" \n" * 100) 

    print(""" 
     7 + 7 
     # $ J 
     # # # """) 

    actualSpin += 1 
    youGot = "#" 
    print(" \n" * 100) 


    print(""" 
     7 $ % 
     + + + 
     B B + """) 

    actualSpin += 1 
    youGot = "+" 
    print(" \n" * 100) 


    print(""" 
     7 $ % 
     & & & 
     B % + """) 

    actualSpin += 1 
    youGot = "&" 
    print(" \n" * 100) 

print("You got a:",youGot) 
+6

смысл иметь минимальное количество слов, чтобы сделать пост, чтобы убедиться, что вы правильно объяснить эту проблему у вас возникли и какие решения вы уже пробовали. – TigerhawkT3

ответ

0

Вы почти наверняка не хотите быть spinTimefloat, если вы, сделав сравнение равенства. Попробуйте сохранить его в качестве int. Таким образом, в какой-то момент TrueactualSpin != spinTime будет предоставлять spinTime увеличивается только один раз каждый раз вокруг петли (которой нет, увидеть другой ответ).

Если вы должны иметь нецелую spinTime, сравните с actualSpin <= spinTime.

+1

Это не будет иметь никакого влияния здесь, несмотря на то, что поплавок, он по-прежнему будет представлена ​​именно так как она отлита из междунар. – robbrit

2

Поскольку вы увеличиваете 6 раз в цикле, программа остановится только тогда, когда spinTime кратно 6. В противном случае это будет продолжаться вечно.

Попробуйте < для вашего состояния

while actualSpin < spinTime: 
0

петли В конце цикла, значение actualSpin будет 7 В первой итерации, 14 во втором, 21 в третий, и так далее. Если вы не повезло, и генерируется случайное число spinTime это 7 или 14, цикл будет продолжаться вечно. А так как вы не инициализировать генератор случайных чисел с чем-то, как текущее время, он будет генерировать один и тот же номер каждый раз, когда вы запускаете его.

1 не очень понимаю логику вашей программы или что вы пытаетесь сделать, но этопричина, почему она продолжает цикл.

0

Оба @xnx и @Jan есть хорошие советы для вас.

spinTime не должен быть приведен к поплавку. Даже если это не повлияет на эту ситуацию, это плохая форма.

Как @Jan указывает, что вам нужно проверить значение actualSpin после каждый раз, когда вы увеличиваете его, в противном случае у вас есть шанс отсутствующий номер 6-в-7.

Другим вариантом было бы изменить время цикла в

while(actualSpin <= spinTime) 

Однако, что будет сильно уклон в сторону последнего выбора в цикле в то время как из-за предшествующего проблемы.

Смежные вопросы