Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 在同一循环完成第一次迭代后,尝试从头开始迭代循环_Python 3.x_Loops_For Loop - Fatal编程技术网

Python 3.x 在同一循环完成第一次迭代后,尝试从头开始迭代循环

Python 3.x 在同一循环完成第一次迭代后,尝试从头开始迭代循环,python-3.x,loops,for-loop,Python 3.x,Loops,For Loop,我有两个嵌套的“for循环”,我正在尝试重新启动第一个循环以从头开始迭代,一旦它的嵌套循环按照if语句成功完成迭代。 但是,如果嵌套循环满足“else”条件,则外部循环应定期继续其迭代。 我试图告诉代码,如果在屏幕上找到的关键字以创建的关键字开始,直到该点继续,否则将在最后一个索引处更改后者,在那里他们停止匹配 这是我已经尝试过的,但是第一个(外部)循环继续通过字母进行迭代,而不是从头开始 import time from bs4 import BeautifulSoup from seleni

我有两个嵌套的“for循环”,我正在尝试重新启动第一个循环以从头开始迭代,一旦它的嵌套循环按照if语句成功完成迭代。 但是,如果嵌套循环满足“else”条件,则外部循环应定期继续其迭代。 我试图告诉代码,如果在屏幕上找到的关键字以创建的关键字开始,直到该点继续,否则将在最后一个索引处更改后者,在那里他们停止匹配

这是我已经尝试过的,但是第一个(外部)循环继续通过字母进行迭代,而不是从头开始

import time
from bs4 import BeautifulSoup
from selenium import webdriver
browser = webdriver.Chrome('chromedriver.exe')
keyList = ['a','b','c','d']
mainUrl = "https://www.amazon.com/"
browser.get(mainUrl)
searchInput = browser.find_element_by_xpath('//input[@id="twotabsearchtextbox"]')
searchInput.clear()
keyword = str()

# I WANT THE LOOP TO RESTART FROM HERE ONCE THE NESTED LOOP IS FINISHED

for keyChar in keyList:
    searchInput.send_keys(keyChar)
    time.sleep(2)
    searchSoup = BeautifulSoup(browser.page_source, "html.parser")
    searchResult = searchSoup.find_all('div', attrs={'id':'suggestions-template'})
    results = searchResult[0].find_all('div', attrs={'class':'s-suggestion'})
    keyword = keyword + keyChar
    print("This is the keyword so far:>>>>   ",keyword)
    time.sleep(2)

    for data_result in results:
        data_keywords = BeautifulSoup(str(data_result),"html.parser")
        keywords_on_screen = data_keywords.find("div", class_="s-suggestion")["data-keyword"]
        print(keywords_on_screen)

        if keywords_on_screen.startswith(keyword):
            print('ALL GOOD')
        else:
            print('Condition not met, moving on next letter')
            continue

我相信您想要的是继续最外层的循环,如果嵌套循环中的
else
条件得到满足。如果未满足
else
条件,则从头开始重新启动最外层的循环

import time
from bs4 import BeautifulSoup
from selenium import webdriver
browser = webdriver.Chrome('chromedriver.exe')
keyList = ['a','b','c','d']
mainUrl = "https://www.amazon.com/"
browser.get(mainUrl)
searchInput = browser.find_element_by_xpath('//input[@id="twotabsearchtextbox"]')
searchInput.clear()
keyword = str()

# I WANT THE LOOP TO RESTART FROM HERE ONCE THE NESTED LOOP IS FINISHED

for keyChar in keyList:
    searchInput.send_keys(keyChar)
    time.sleep(2)
    searchSoup = BeautifulSoup(browser.page_source, "html.parser")
    searchResult = searchSoup.find_all('div', attrs={'id':'suggestions-template'})
    results = searchResult[0].find_all('div', attrs={'class':'s-suggestion'})
    keyword = keyword + keyChar
    print("This is the keyword so far:>>>>   ",keyword)
    time.sleep(2)

    for data_result in results:
        data_keywords = BeautifulSoup(str(data_result),"html.parser")
        keywords_on_screen = data_keywords.find("div", class_="s-suggestion")["data-keyword"]
        print(keywords_on_screen)

        if keywords_on_screen.startswith(keyword):
            print('ALL GOOD')
        else:
            print('Condition not met, moving on next letter')
            continue
试试:-

import time
from bs4 import BeautifulSoup
from selenium import webdriver
browser = webdriver.Chrome('chromedriver.exe')
keyList = ['a','b','c','d']
mainUrl = "https://www.amazon.com/"
browser.get(mainUrl)
searchInput = browser.find_element_by_xpath('//input[@id="twotabsearchtextbox"]')
searchInput.clear()
keyword = str()
ctr = 0
x = 0

# I WANT THE LOOP TO RESTART FROM HERE ONCE THE NESTED LOOP IS FINISHED

while x < len(keyList):
    keyChar = keyList[x]
    searchInput.send_keys(keyChar)
    time.sleep(2)
    searchSoup = BeautifulSoup(browser.page_source, "html.parser")
    searchResult = searchSoup.find_all('div', attrs={'id':'suggestions-template'})
    results = searchResult[0].find_all('div', attrs={'class':'s-suggestion'})
    keyword = keyword + keyChar
    print("This is the keyword so far:>>>>   ",keyword)
    time.sleep(2)

    for data_result in results:
        data_keywords = BeautifulSoup(str(data_result),"html.parser")
        keywords_on_screen = data_keywords.find("div", class_="s-suggestion")["data-keyword"]
        print(keywords_on_screen)

        if keywords_on_screen.startswith(keyword):
            print('ALL GOOD')
            ctr = 1
        else:
            print('Condition not met, moving on next letter')
            ctr = 0
            continue
    if ctr is not 1:
        x += 1
导入时间
从bs4导入BeautifulSoup
从selenium导入webdriver
browser=webdriver.Chrome('chromedriver.exe')
keyList=['a','b','c','d']
mainUrl=”https://www.amazon.com/"
browser.get(mainUrl)
searchInput=browser.find_element_by_xpath('//input[@id=“twotabsearchtextbox”]”)
searchInput.clear()
关键字=str()
ctr=0
x=0
#一旦嵌套循环完成,我希望循环从此处重新启动
当x>>”,关键字)
时间。睡眠(2)
对于结果中的数据_结果:
data\u keywords=BeautifulSoup(str(data\u result),“html.parser”)
关键词屏幕上的关键词=数据关键词。查找(“div”,class=“s-suggestion”)[“数据关键词”]
打印(屏幕上的关键字)
如果屏幕上有关键字,则开始使用(关键字):
打印(“一切正常”)
ctr=1
其他:
打印('不满足条件,继续下一个字母')
ctr=0
持续
如果ctr不是1:
x+=1
如果满足嵌套的
条件,则最外层的循环将无限执行,直到嵌套的
条件满足为止;否则,如果不满足该条件,则最外层的循环将正常执行,并在列表
KeyList
的所有元素用尽后终止