2015-01-06 3 views
-4

Как поместить это в цикл на питоне, чтобы он продолжал спрашивать, выиграл ли игрок 1, пока не достигнет количества игр в матче. я попробовал время цикла, но он не работает :(Переменная внутри цикла PYTHON

Y="yes" 
N="no" 
PlayerOneScore=0 
PlayerTwoScore=0 

NoOfGamesInMatch=int(input("How many games? :- ")) 
while PlayerOneScore < NoOfGamesInMatch: 
    PlayerOneWinsGame=str(input("Did Player 1 win the game?\n(Enter Y or N): ")) 

if PlayerOneWinsGame== "Y": 
    PlayerOneScore= PlayerOneScore+1 
else: 
    PlayerTwoScore= PlayerTwoScore+1 

print("Player 1: " ,PlayerOneScore) 
print("Player 2: " ,PlayerTwoScore) 

print("\n\nPress the RETURN key to end") 
+2

Где находится цикл while, и что именно делает «оно не работает» * означает? – jonrsharpe

+0

привет, я добавил цикл while, и это не сработало, значит я не могу закончить цикл, он продолжает повторять, сделал ли игрок 1 победу в игре ?! извините за ужасное объяснение –

+1

Обратите внимание, что ** отступы имеют значение в Python **. Тест 'if' не находится внутри цикла while. Подумайте о чтении учебника Python. – jonrsharpe

ответ

0

while цикл будет работать нормально

while PlayerOneScore < NoOfGamesInMatch: 
    PlayerOneWinsGame=str(input("Did Player 1 win the game?\n(Enter Y or N): ")) 

    if PlayerOneWinsGame== "Y": 
     PlayerOneScore= PlayerOneScore+1 
    else: 
     PlayerTwoScore= PlayerTwoScore+1 

Храните все остальное из цикла. Значение сохранить ваши инициализации вещи перед циклом , то ваш счет отчетов после цикла.

+0

привет, спасибо за ответ. Оно работает!! но как бы закончить цикл, потому что он будет просто продолжать повторять. Игрок 1 выиграл игру. –

+0

Цикл будет заканчиваться только после того, как 'PlayerOneScore' будет равен или больше, чем' NoOfGamesInMatch' – CoryKramer

+0

. См. Мой ответ для обновленного решения на основе Cyber. – alexisdevarennes

0
import sys  
while PlayerOneScore < NoOfGamesInMatch: 
    answer = str(input("Did Player 1 win the game?\n(Enter Y or N or Q to quit): ")) 

    if answer.lower() == "q": 
     sys.exit() 
    elif answer.lower() == "y": 
     PlayerOneScore = (PlayerOneScore + 1) 
    elif answer.lower() == "n": 
     PlayerTwoScore = (PlayerTwoScore + 1) 
    else 
     print "Valid answers are Y (yes), N (no) and Q (quit). 

Теперь вы можете выйти из игры, введя д. Я также сделал так, что ответы не чувствительны к регистру.

Игра будет продолжаться до тех пор, пока PlayerOneScore меньше, чем NoOfGamesInMatch.

Вы должны поместить систему импорта в верхнюю часть файла.

+0

[Вы не должны использовать 'is' для этих типов сравнений, вы должны использовать' == '] (http://stackoverflow.com/questions/2988017/string-comparison-in-python-is-vs) – CoryKramer

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