【问题标题】:Python game doesnt runPython游戏不运行
【发布时间】:2013-07-10 15:45:29
【问题描述】:

我即将完成我用 python 制作的数学游戏,但我收到错误代码“未定义 num 1 和 num2,这是我的 Python 课程的最后一部分,只有这会阻碍我完成它所以我非常感谢我能得到的所有帮助。数字是在显示函数中确定的 int,在显示函数中是添加一次尝试,并根据它给出消息是对还是错。问题就是一切除了乘法的主要功能之外还可以工作。我已经删除了小部件,因为我认为它们对于解决这个问题并不重要。

from Tkinter import *
import random
number = num1 * num2
num1= random.randint(1, 15)
global num1
num2 = random.randint(1, 15)
global num2
forsok = 0
class Application(Frame):

def quit(self):
    global root
    root.destroy()

def reset(self):
    self.name_ent.delete(0, END)
    self.gissa_ent.delete(0, END)
    self.display1_txt.delete(1.0,END)
    self.display2_txt.delete(1.0,END)
    self.display3_txt.delete(1.0,END)
    self.display4_txt.delete(1.0,END)


def reveal(self):
    global forsok
    name = self.name_ent.get()
    gissa = self.gissa_ent.get()
    if int(gissa) != int(number):
        result_msg = "Tyvärr det är fel!!"
        forsok += 1
    if int(gissa) == int(number):
        result_msg = "Du gissade rätt!!Grattis du vann!"
        forsok += 1
    welcome_msg = "Välkommen " + name 
    gissa_msg = " Du svarade på: " + gissa
    forsok_msg = "Du har svarat " + str(forsok) + "gånger."
    if forsok > 3:
        welcome_msg = "Game OVER!!."
        gissa_msg = "Du har gissat för många gånger mohahaha."
        result_msg = " "
        forsok_msg = " "
    # Display visar de olika meddelanadena
    self.display1_txt.delete(0.0, END)
    self.display1_txt.insert(0.0, welcome_msg)
    self.display2_txt.delete(0.0, END)
    self.display2_txt.insert(0.0, gissa_msg)
    self.display3_txt.delete(0.0, END)
    self.display3_txt.insert(0.0, result_msg)
    self.display4_txt.delete(0.0, END)
    self.display4_txt.insert(0.0, forsok_msg)


    # Main hanteraren rootar och bestämmer storleken på fönstret
root = Tk()
root.title("Gissa Multiplikationen")
root.geometry("700x450")
app = Application(root)
root.mainloop()
root = Tk()
quit_bttn(root)
Application(root)
root.mainloop()

错误信息如下

number = num1 * num2
NameError: global name 'num1' is not defined

【问题讨论】:

  • 我想你可能误解了global的用法。

标签: python python-2.7 tkinter


【解决方案1】:

嗯,错误说明了一切。您在第 3 行使用了 num1 和 num2,但它们只是稍后才定义的。

【讨论】:

  • 谢谢!这解决了问题,
【解决方案2】:

您的线路顺序错误,您在告诉程序它们是什么之前尝试使用 num1 和 num2。试试:

from Tkinter import *
import random
global num1
num1= random.randint(1, 15)
global num2
num2 = random.randint(1, 15)
number = num1 * num2
forsok = 0
class Application(Frame):

【讨论】:

  • 谢谢!!解决了问题,哈哈,这是一件很简单的事情
猜你喜欢
  • 2016-03-18
  • 1970-01-01
  • 2013-07-27
  • 1970-01-01
  • 2022-11-06
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多