python for循环只更新3个变量中的2个?

python for循环只更新3个变量中的2个?,python,loops,for-loop,tkinter,listbox,Python,Loops,For Loop,Tkinter,Listbox,我想在一个循环中使用3个变量。 这就是我所尝试的: def loop_player_listbox(): global bol_loop, count bol_loop = True while True: time.sleep(1) str_libo_p = listbox.get(0,tk.END) str_libo_r = listboxr.get(0,tk.END) str_libo

我想在一个循环中使用3个变量。 这就是我所尝试的:

def loop_player_listbox():
    global bol_loop, count
    bol_loop = True
    while True:
        
        time.sleep(1)
        str_libo_p = listbox.get(0,tk.END)
        str_libo_r = listboxr.get(0,tk.END)
        str_libo_price = listboxprice.get(0,tk.END)

        for i,r,p in itertools.product(str_libo_p, str_libo_r, str_libo_price):
            text_playername = wait.until(EC.element_to_be_clickable((By.XPATH,('/html/body/main/section/section/div[2]/div/div[2]/div/div[1]/div[1]/div[1]/div/input'))))
            text_playername.click()
            time.sleep(1)
            text_playername.clear()
            time.sleep(1)
            text_playername.click()
            text_playername.send_keys(i)
            user_input_max_price = p
            try:
                choose_player = wait.until(EC.element_to_be_clickable((By.XPATH,("//span[@class='btn-text' and contains(text(),'"+i+"')]")))) and wait.until(EC.element_to_be_clickable((By.XPATH,("//span[@class='btn-subtext' and contains(text(),'"+r+"')]"))))
                choose_player.click()
                
                count = 0
                while count < 5:

                    while True:
                        # some unimportant code

                    # set speed
                    # some unimportant code

                    # set max BIN price
                    while True:
                        #user_input_max_price = input('Enter max buy now price (>250):')
                        user_input_max_price = p
                        if user_input_max_price.isdigit():
                            int_user_input_max_price = int(user_input_max_price)
                            if int_user_input_max_price > 250:
                                break
                            else:
                                print('Max buy now price must be >250')
                                continue
                        else:
                            continue
                            

                    
                    # set max price
                    # some unimportant code


                    # Buy until 100 players were bought
                    while count < 5:            
                        
                        # some unimportant code
                        count +=1

def loop\u player\u listbox():
全局bol_循环,计数
bol_循环=真
尽管如此:
时间。睡眠(1)
str_libo_p=listbox.get(0,tk.END)
str_libo_r=listboxr.get(0,tk.END)
str_libo_price=listboxprice.get(0,tk.END)
对于itertools.product中的i、r、p(str_libo_p、str_libo_r、str_libo_price):
text_playername=wait.until(EC.element_to__可点击('By.XPATH,'/html/body/main/section/section/div[2]/div/div[1]/div[1]/div[1]/div/input'))
text_playername.单击()
时间。睡眠(1)
text_playername.clear()
时间。睡眠(1)
text_playername.单击()
文本\u播放器名称。发送\u键(i)
用户输入最大价格=p
尝试:
选择"player=wait.until(EC.element)可点击(By.XPATH)(“//span[@btn-text”和contains(text(),“+i+”)])并等待(EC.element)可点击(By.XPATH,(“//span[@class='btn-subtext'和contains(text(),“+r+”)]))
选择\u播放器。单击()
计数=0
当计数小于5时:
尽管如此:
#一些不重要的代码
#设定速度
#一些不重要的代码
#设置最大仓位价格
尽管如此:
#用户输入最大价格=输入('Enter max buy now price(>250):'))
用户输入最大价格=p
如果用户输入\u max\u price.isdigit():
int\u user\u input\u max\u price=int(user\u input\u max\u price)
如果int用户输入最大价格>250:
打破
其他:
打印('Max buy now price必须大于250')
持续
其他:
持续
#设定最高价格
#一些不重要的代码
#购买直到购买100名球员
当计数小于5时:
#一些不重要的代码
计数+=1
问题是,变量
r
p
count=5
之后会更新

但是
i
始终只显示列表框中的第一项,不更新。每次我的循环回到i,r,p…的
行时,我在debug中看到只有变量
r
p
更新

我不知道为什么。在搜索如何组合多个
for
循环时,我找到了
itertools
,因此我使用了它


也许有人认为哪里不对?

从itertools改为zip解决了这个问题

对于zip中的i、r、p(str_libo_p、str_libo_r、str_libo_price):