Этот код не будет продолжать после проверки того, является ли переменная x целым числом или нет. Он выдает ValueError, если x не является int. Как заставить программу игнорировать эту ошибку? Я попытался перевернуть заявление так:Если оператор не продолжается
elif x is isinstance(x, int):
, но затем, если я дам ему целое, он немедленно переходит к утверждению другого.
from tkinter import *
root = Tk()
root.wm_title("InOut")
root.geometry('500x500')
greetings = ["hello", "Hello", "greetings", "Greetings"]
def out(event):
x = ent.get()
if x in greetings:
lr.configure(text=x + ",\n is there\n anything\n I can do\n for you?")
elif x is isinstance(x, int):
if int(x) == 0:
lr.configure(text="This is 0")
elif int(x) % 2 == 0:
lr.configure(text="This is a even number")
elif int(x) % 2 != 0:
lr.configure(text="This is an odd number")
elif x is "":
lr.configure(text="Well")
else:
print("Closing")
root.destroy()
ent = Entry(root)
ent.grid(row=0, column=0, sticky=NW)
lr = Label(root, text="Output")
lr.grid(row=0, column=2, columnspan=2)
btn = Button(root, text="Process")
btn.grid(row=0, column=1, sticky=NW)
btn.bind("<Button-1>", out)
root.mainloop()
Удалить это x есть. Просто «isinstance (x, int)». Прямо сейчас вы спрашиваете, есть ли x (True или False), который всегда возвращает False. – James
@James все еще не работает – birkenspanner
Похоже, что вы можете дать ему строку, а не int? Если вам нужно передать его в int ниже оператора if, то это не было int в первую очередь - см. Мой ответ – James