如何解决嵌套if语句赋予所有条件值
我正在尝试运行以下代码,但这同时给了我两个条件值,即“是”和“否”。我正在尝试通过下拉列表在tkinter中做到这一点-
import tkinter as tk
Classi = "X","Y","Z"
subclassi = "A","B","C"
root = tk.Tk()
canvas = tk.Canvas(root,height = 500,width = 500,bg='white')
canvas.pack()
tkClassi = tk.StringVar(root)
tkClassi.set("Choose")
tksub = tk.StringVar(root)
tksub.set("Dg")
popupMenu1 = tk.OptionMenu(canvas,tkClassi,*Classi)
popupMenu1.pack()
popupMenu2 = tk.OptionMenu(canvas,tksub,*subclassi)
popupMenu2.pack()
def resu():
if Classi[0] and subclassi[0]:
print('Value is P')
if Classi[0] and subclassi[1]:
print("Value is Q")
myButton= tk.Button(root,text='Result',command=resu).pack()
root.mainloop()
解决方法
为什么在if语句后不使用elif
这将首先检查语句,如果语句不正确,则将转到elif语句,否则将结束
我认为您想这样做
import tkinter as tk
Classi = "X","Y","Z"
subclassi = "A","B","C"
root = tk.Tk()
canvas = tk.Canvas(root,height = 500,width = 500,bg='white')
canvas.pack()
tkClassi = tk.StringVar(root)
tkClassi.set("Choose")
tksub = tk.StringVar(root)
tksub.set("Dg")
global popupMenu1,popupMenu2
popupMenu1 = tk.OptionMenu(canvas,tkClassi,*Classi)
popupMenu1.pack()
popupMenu2 = tk.OptionMenu(canvas,tksub,*subclassi)
popupMenu2.pack()
def resu():
if tkClassi.get()==Classi[0] and tksub.get()==subclassi[0]:
print('Value is P')
elif tkClassi.get()==Classi[0] and tksub.get()==subclassi[1]:
print("Value is Q")
else:
print("Value is R")
myButton= tk.Button(root,text='Result',command=resu).pack()
root.mainloop()
,
我不确定100%是因为我不熟悉tkinter,但我认为它会打印“是”和“否”,因为两次if语句完全相同。
,您可以创建tk.Label()
来显示您的状态
import tkinter as tk
Classi = "X",bg='white')
canvas.pack()
tkClassi = tk.StringVar(root)
tkClassi.set("Choose")
tksub = tk.StringVar(root)
tksub.set("Dg")
status=tk.StringVar(root)
global popupMenu1,*subclassi)
popupMenu2.pack()
Status=tk.Label(canvas,text="None",textvariable=status)
Status.pack()
status.set('None')
def resu():
if tkClassi.get()==Classi[0] and tksub.get()==subclassi[0]:
print('Value is P')
status.set('Value is P')
elif tkClassi.get()==Classi[0] and tksub.get()==subclassi[1]:
print("Value is Q")
status.set('Value is Q')
else:
print("Value is R")
status.set('Value is R')
myButton= tk.Button(root,command=resu).pack()
root.mainloop()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。