![](/img/trans.png)
[英]Python - For Loop if statement skip to next iteration in Selenium
[英]For loop statement not reading if statement to continue to next iteration
我的代碼看起來像這樣:
for item in items:
if item.data["position"] == '5':
item.delete()
continue
elif item.data["lang"] == 'SPA':
message_body = my_message_spa[item.data["position"]]
else:
message_body = my_message_eng[item.data["position"]] # English (default)
message = client.messages.create(
item.data["phone_number"],
body=message_body,
from_="xxxx"
)
# increment the position for this user
item.data["position"]+=1
此代碼旨在向用戶發送消息。 Items是包含用戶電話號碼,日期,語言和位置的字典列表。 位置是指它們在消息序列中的位置。 我想檢查用戶的位置,如果他們已經收到5
消息,那么它應該從列表中刪除並繼續下一個用戶。 如果用戶的位置<5
那么它應該進入else if
語句並根據滿足的條件發送消息。
詞典列表具有以下結構:
{'phone_number': '+1234567890', 'position': 5, 'lang': 'ENG', 'Date': '2018-08-17 00:03:46'}
{'phone_number': '+0987654321', 'position': 2, 'lang': 'ENG', 'Date': '2018-12-18 07:10:47'}
代碼工作正常,我添加/測試的新部分是if語句檢查位置,但似乎if語句根本沒有被調用,直接到下面的elif
檢查'lang'
並發送消息並增加用戶的位置。 在我的情況下,用戶的位置增加到6
。
您似乎錯誤地比較了該值。 您正在嘗試將字符串“5”與整數5進行比較。
if item.data["position"] == '5':
請注意5左右的報價。
例如:
print(1 == "1")
print(1 == 1)
第一個返回False,第二個返回True。
在迭代它時,您也不應該從列表中刪除項目。 而是嘗試創建副本或使用列表理解。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.