samedi 23 avril 2016

Python 3 if else errors

Having some trouble with my GUI Number Game: I want the user to input a positive number. It has to be a positive, greater than zero Interger. Not a float. No commas, I can remove them (though I don’t know how.) if, elif, and Exception Handling concepts are still new to me. I want pop up boxes to appear when incorrect information has been entered.

from tkinter import *
from tkinter import ttk

class App(Tk):
    def __init__(self):
        Tk.__init__(self)

    self.Number()
    self.Output()

def Number(self):
    Label (self, text = "Enter a positive whole number!").grid(row=1, column = 0)
    self.Number = Entry(self)
    self.Number.grid(row = 1, column = 1)

def Output(self):
    self.btn = Button(self, text = "Check the number")
    self.btn.grid(row = 8, column = 1)
    self.btn["command"] = self.calculate

def calculate(self):
    #Type cast the tkinter Entry to be an int
    self.Number = int(self.Number.get())
    #Print the class type of the variable self.Number:
    print (type(self.Number))

    #If the interger is equal to zero, display a custom popup box
    if self.Number == 0:
        self.newWindow = Toplevel(self)
        Label(self.newWindow, text = "Please enter a number greater than zero!").grid()
        self.newWindow.grid()
    #Else if the number is less than zero, display a custom pop up box
    elif self.Number <= 0:
        self.newWindow = Toplevel(self)
        Label(self.newWindow, text="Plase enter a positive whole number!")
        self.newWindow.grid()
    #Check to see if anything has been input at all
    #Else if the length of the user's input is 0/null, display a custom pop up
    elif len(self.Number) == 0:
        self.newWindow = Toplevel(self)
        Label(self.newWindow, text = "Please enter a number greater than zero!").grid()
        self.newWindow.grid()
    #Else if the number is not equal to an int, display a custom pop up
    elif self.Number != int:
        self.newWindow = Toplevel(self)
        Label(self.newWindow, text = "Please enter a number greater than zero!").grid()
        self.newWindow.grid()

Aucun commentaire:

Enregistrer un commentaire