对于循环,为每个循环迭代指定一个变量名



这是我一直在处理的代码的一部分,在for循环中,它通过product_buttons迭代,以定义选择了哪个按钮,在选择了按钮后,我想显示选择了哪个按键,我成功地做到了如下:

product_buttons=[36,38,40]#树莓皮针

in_progress = False
ended = True
product = None
def show_msg(wid,msg):
wid.config(text = msg)
pass
def button_loop():
global in_progress,ended
waiting = False
product = None
while True:
for i in range(len(product_buttons)):
button = IO.input(product_buttons[i])
if button:
print(i,in_progress,ended,product)
if not in_progress:
product = i
while not ended:
time.sleep(0.1)
in_progress = True
show_msg(root.lab_quality,'Button {}

按下'.format(i((

该代码工作正常,每当按下按钮时,它都会随着按下按钮0、按下按钮1或按下按钮2而更改Button {} pressed。现在,我试图做的是为for循环中的每个迭代分配一个变量名,以实现以下内容:

i = 0使i=成为一个变量,例如,让我们称之为i = 1使i=变为bi = 2使i=到c

因此(仍然是例如(当按钮0被按下时,它显示按钮a被按下。我试着存储像quality={1:a, 2:b, 3:c}这样的值,然后用show_msg(root.lab_quality,'Button {} pressed'.format(quality))来调用它,这是我脑海中的想法,但没有实现,我有点卡住了,我需要被指向正确的方向,这样我才能最终实现。

任何帮助都将不胜感激!

您需要将quality定义为一个字典,如下所示:quality={'1':'a', '2':'b', '3':'c'}。然后,您可以调用show_msg函数:

show_msg(root.lab_quality,'Button {} pressed'.format(quality[str(i)]))

通过这种方式,您可以使用i变量的值作为从质量字典中读取其名称的关键字。

谢谢大家,我已经解决了,我做到了:

btn = ['a','b','c']
show_msg(root.lab_quality,'QUALITY {}'.format(btn[j]))

它就像一个符咒,很容易,我不知道为什么我以前没有看到它。

最新更新