2014-03-05 151 views
0

我目前正在爲一個類的項目工作,我們提出了一個問題。當我們運行代碼時,它通常會崩潰。我猜測它無限運行。這個程序也使用Tkinter。這裏是代碼:Python代碼不起作用,而計數器不起作用

import tkinter as tk 

from tkinter import * 
# import the random module 
import random`` 

# set control variables 
guess = 0 

counter = 0 

number=random.randint(0,100) 

themain=number 

def myGuess(): 

    guess = float(enter1.get()) 
    counter= 10 


    while guess != number: 
     counter = counter - 1 

     if guess == number: 
      result = "Congratulations!" 
      howmany= "You have ", counter, "Tries to spare" 
      label2.config(text=result) 
      label3.config(text=howmany) 
     elif guess > number: 
      result = "To high" 
      howmany= "You have ", counter, "Tries left" 
      label2.config(text=result) 
      label3.config(text=howmany) 
     elif guess < number: 
      result = "To low" 
      howmany= "You have ", counter, "Tries left" 
      label2.config(text=result) 
      label3.config(text=howmany) 





root=tk.Tk() 
root.title("Guessing Game") 
#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 

label1 = tk.Label(root, text=' Enter value:') 

enter1 = tk.Entry(root, bg='red') 

btn1 = tk.Button(root, text=' Enter Number', command=myGuess) 

label2 = tk.Label(root, text='') 

label3 = tk.Label(root, text='') 

#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 

label1.grid(row=0, column=0) 

enter1.grid(row=0, column=1, padx=5, pady=5) 

btn1.grid(row=2, column=0, pady=5) 

label2.grid(row=2, column=1) 

label3.grid(row=3, column=0) 

I hope you guys can help! 
+2

你永遠不會改變'guess'的值,它不能退出循環。 – njzk2

+2

如果Python崩潰有一個回溯,你能向我們展示回溯? –

+1

your'e試圖在myGuess函數中調用'number',這是本地的,如果你想使用'random.radint(0,100)'的''''''''''''''''''''''''號''''''''''標記爲全局。在腳本的頂部寫上'全局號碼' – PYPL

回答

1

看來,你永遠不會改變guess的值。對於崩潰,我們需要更多信息,如追蹤。

+0

沒有錯誤,只是崩潰,沒有響應。但是我們不需要猜測改變,我們需要反抗改變。它不會在定義中減去。 –

0

對於下面的行,什麼是enter1?

  • 猜測=浮動(enter1.get())
0

你應該完全刪除while循環。 - 這個不成立。 代碼在沒有它的情況下運行「正確」,並執行你所需要的。

但是,您似乎需要檢查已達到的嘗試次數。