Gle*_*enn 1 python if-statement
我有一个包含数字的列表(lijstkleur)1,4,6,7.我的范围从0到8.现在我有以下代码:
for x in range(0, len(L), 1):
if x in lijstkleur == True:
self.label = Label(self.frame, text=string[x], fg="yellow", bg="red")
self.label.pack(side=LEFT)
else:
self.label = Label(self.frame, text=string[x], fg="white", bg="red")
self.label.pack(side=LEFT)
Run Code Online (Sandbox Code Playgroud)
但所有的数字都变成了白色,这个if语句出了什么问题
无需使用== True:
if x in lijstkleur:
Run Code Online (Sandbox Code Playgroud)
表达式x in lijstkleur==True被解释为(x in lijstkleur) and (lijstkleur == True); 列表永远不会等于布尔值True,因此您最终会进行测试something and False,保证会False相反.这称为比较链,使表达式成为10 < a < 20可能.
您可以简化您的range()通话len(L):
for x in range(len(L)):
Run Code Online (Sandbox Code Playgroud)
并且无需重复.pack()呼叫:
if x in lijstkleur:
self.label=Label(self.frame,text=string[x],fg="yellow",bg="red")
else:
self.label=Label(self.frame,text=string[x],fg="white",bg="red")
self.label.pack(side=LEFT)
Run Code Online (Sandbox Code Playgroud)