2016-09-30 157 views
-3
while Winner == "": 
    while First_Player_Turn == "Y": 
     while rtd != "": 
      try: 
       rtd = input("{} press enter to roll the dice".format(First_Player)) 
       if rtd == "": 
        dice = random.randint(1, 6) 
        First_Player_Position = dice + First_Player_Position 
        steps_left = 50 - First_Player_Position 
        print("{} needs {} steps to finish".format(First_Player, steps_left)) 
        if First_Player_Position >= 50: 
         Winner = "Y" 
        First_Player_Turn = "N" 
        Second_Player_Turn = "Y" 
        print("Test to see if this is printed - It is but not in wingide") 
        continue 
      except: 
        print("Please press enter")      
    while Second_Player_Turn == "Y": 

我已經測試過這個多次,我發現wingide並不顯示Tested部分,但是Python正常。我想要發生的是當它通過First_Player_Turn循環運行到Second_Player_Turn循環。Python在打印語句中停止

+0

我們不是在這裏爲你解決你的工作,我們會提供幫助。你有什麼嘗試? –

+0

如果您從命令行和IDE獲得不同的結果,最常見的問題是您運行的是兩個不同版本的python,可能是2和3. input()特別可以向您發送奇怪的路由。 – cdarke

+1

在當前狀態下很難回答你的問題。如果您發佈其他人可以用來嘗試重現問題的[mcve],這將有所幫助。順便說一句,不建議使用這樣的未命名'except',並且不清楚爲什麼你在代碼中使用它。你期望它做什麼? –

回答

0

您不顯示字符串變量的初始化。你的程序開始於以下情況:

while Winner == "": 
    while First_Player_Turn == "Y": 
     while rtd != "": 
  • 如果Winner初始化爲"",外環運行。
  • 如果First_Player_Turn初始化爲"Y",則中間循環將運行。
  • 如果rtd不是初始化爲"",則內循環將運行。

因爲你並沒有顯示出初始化所有三個變量,你顯然依靠魔法能讓他們的完全正確的價值觀開始。因爲這是不太可能的,所以循環中的機率將運行。

0

我已經知道了我自己,rtd與其他rtd的遺憾是浪費你的時間。