对于itertools循环,仅循环3次

2024-06-01 14:12:05 发布

您现在位置:Python中文网/ 问答频道 /正文

Python初学者在这里向开发者寻求一些指导。我只想在中断之前重复for循环3次(或x次),但我仍然被困在无限循环中。有什么建议吗

for url in itertools.cycle(url_list):
    browser.get(url)
    time.sleep(6)
    cycle + 1
    if check_add_cart():
        print('In-Stock =) / ' + browser.title + ' / ' + now.strftime('%Y-%m-%d %H:%M:%S'))
    elif not check_add_cart():
        print('Out-of-Stock =( / ' + browser.title + ' / ' + now.strftime('%Y-%m-%d %H:%M:%S'))
    elif cycle == 3:
        break
        browser.close()
    else:
        print('Error')

 

Tags: browseraddurlfortitlecheckstocknow
3条回答

试试这个-

for i in range(3) # The code will happen 3 times
    # Do Stuff

看起来好像您没有更改循环变量

cycle + 1

不向cycle添加1,而是cycle+1的表达式。 试试isntead

cycle += 1

而且

elif cycle == 3:
    break
    browser.close()

不会关闭浏览器,因为前面有一个break语句,更改它们的顺序应该可以解决这个问题。 在评论中对问题的解决方法是将

elif cycle == 3:
    break
    browser.close()

变成

if cycle == 3:
    break
    browser.close()

你不需要itertools

url_list = ['url_0', 'url_1', 'url_2']
x = 3

for i in range(x):
    print(f'Round {i}:')
    for url in url_list:
        print(f'  url: {url!r}')

输出:

Round 0:
  url: 'url_0'
  url: 'url_1'
  url: 'url_2'
Round 1:
  url: 'url_0'
  url: 'url_1'
  url: 'url_2'
Round 2:
  url: 'url_0'
  url: 'url_1'
  url: 'url_2'

相关问题 更多 >