2015-09-24 2 views
-1

Я знаю, как использовать цикл while, но я не уверен в том, где мне нужно сделать команду, чтобы удвоить предыдущий балл.While loop/Double or quit

The task следует удвоить или закрыть.

И это мой текущий код:

import random 
play = 'y' 
Original = 1 

while play.lower() == 'y': 
    chance = random.randint(0,3) 

    if chance == 0: 
     print("Unlucky.... better luck next time") 

    else: 
     newnumber = Original*2 
     print (newnumber) 


    play = input("Play again?[y/n]: ") 
+0

Задайте себе следующие вопросы: во второй раз круглом 'while', какое значение будет иметь значение' Original 'и 'newnumber', и что вы хотите от них? Что произойдет, если игроку повезло, но он снова хочет играть? И, наконец, ты чувствуешь себя счастливым? Вы? – nekomatic

ответ

0

Вы в настоящее время повторяя то же вычисление фиксированного выходного снова и снова:

newnumber = Original*2 

Original является константой, так как вы только определить его на начинать и никогда не менять его.

Вместо этого вы должны использовать результат от последнего запуска итеративно:

import random 
play = 'y' 
result = 1 

while play.lower() == 'y': 
    chance = random.randint(0,3) 
    if chance == 0: 
    print("Unlucky.... better luck next time") 
    break 
    else: 
    result *= 2 
    print (result) 
play = input("Play again?[y/n]: ") 
0

for -loop лучше подходит для вашей проблемы:

from itertools import count 
import random 

for pot in count(): 
    if random.randint(0, 3) == 0: 
     print("Unlucky.... better luck next time") 
     break 
    print(2 ** pot) 
    if input("Play again?[y/n]: ").lower() != 'y': 
     break