python for循环只更新3个变量中的2个?
我想在一个循环中使用3个变量。 这就是我所尝试的: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
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):