0
所以這是代碼即時提供和說明如下:)Python - For循環所有,然後打印?
r = s.get(Url)
names = soup(r.text, 'html.parser')
findName = names.find('div', {'class':'nameslist'})
if (r.status_code == 200):
for name in names.find_all('option'):
global nameID
if myName == foundName:
nameID = size.get('value')
print('Profile-1 Found name')
break
else:
print('Did not find name')
if (findName != None):
notepresent = True
print('There is a value')
else:
global addtonotes
notepresent = False
addtonotes = {'id': nameID}
add2notes(addtonotes)
輸出
Did not find name
Did not find name
Did not find name
Did not find name
Did not find name
Did not find name
Did not find name
Profile-1 Found name
我要的是,它不應該說「找不到名稱」直到它通過循環遍歷所有名字,然後說它沒有找到任何名字。 但是它現在所做的是,它爲每個名稱逐個循環,直到找到名稱,然後我使用break來不再搜索其他名稱,因爲它不需要。
所以問題是我怎麼能把它打開,所以它會說沒有找到名稱時,它已經爲每個名稱循環,然後說沒有找到名稱後,它已通過所有名稱循環?
編輯:
所以每當它找到的名稱就會去addtonotes = {'id': nameID}
,然後它會被添加到addtonotes但它不發現則會有一個回溯說:
Did not find name
Did not find name
Did not find name
Did not find name
Did not find name
Did not find name
Did not find name
Did not find name
Did not find name
Did not find name
Traceback (most recent call last):
self._target(*self._args, **self._kwargs)
File "C:\Users\Test.py", line 153
addtonotes = {'id': nameID}
NameError: name 'nameID' is not defined
所以我也想要的是,當它沒有找到任何名稱時,它應該只使用Sys.exit(),但我現在不能在else語句中實現它,因爲它會通過第一個循環執行sys.exit ...
我希望有人認識這個問題:)
哦。它有助於提升,但是現在發生的事情是,它說它找到了名字,但是也表示它沒有被發現。輸出將會顯示'''Profile-1 Found name - 沒有找到名字'''但是這是你做的第二次編輯。 – WeInThis
@WeInThis:我發佈的代碼無法同時打印;要麼打印「Profile-1 Found name」,要麼執行「break」,要麼到達'else'塊。它不能做到這一點,因爲「break」。 –
哦,哦。好吧,我確實嘗試了第一種解決方案,似乎即使沒有休息也能得到我想要的結果:)我認爲我可以將此標記爲已解決。我還不確定,但我會測試周圍,看看。到現在爲止還挺好! :) – WeInThis