在 Python 中按顺序导入和插入单词

Import and insert word in sequence in Python

我想在序列导入插入单词不是随机的,每次注册尝试都使用单个用户名和停止,直到注册完成[=34] =].如果 REGISTRATION 失败,然后注销并使用列表中的 next 用户名开始 new 注册,如果注册成功跳过

我真的很困惑,因为我没有头绪。我试过 code 但它随机选择,我 no 不知道如何使用“for 循环"

import random

Copy = driver.find_element_by_xpath('XPATH')
Copy.click()
names = [
   "Noah" ,"Liam" ,"William" ,"Anthony" 
]
idx = random.randint(0, len(names) - 1)
print(f"Picked name: {names[idx]}")
Copy.send_keys(names[idx])

如何让它按顺序选择下一个单词并且不是随机的 请帮忙

我假设您对代码的作用感到满意,除了它选择的名称是随机的。这将所有内容缩小到一行,即随机选择名称的一行:

idx = random.randint(0, len(names) - 1)

很简单,您想要“按顺序排列的下一个单词,而不是随机的”: https://docs.python.org/3/tutorial/datastructures.html#more-on-lists

如果你看一下我提供的 link,你可以看到列表有一个 pop() 方法,从列表中返回和删除一些元素。我们想要第一个,所以我们将提供 0 作为 pop 方法的参数。

我们将行修改为如下所示

name = names.pop(0)

现在您仍然想要 for-loop 循环遍历包括名称选择在内的所有操作,因此您将所有代码封装在 for-loop 中:

names = [
    "Noah" ,"Liam" ,"William" ,"Anthony" 
]

for i in range(len(names)):
    # ...
    Copy = driver.find_element_by_xpath('XPATH')
    Copy.click()
    name = names.pop(0)
    print(f"Picked name: {name}")
    Copy.send_keys(name)
    # ...

您可能会注意到名称列表在 for 循环中 而不是 。那是因为我们不想每次尝试使用新名称时都重新分配列表。

如果您完全不确定 for 循环的工作原理或如何自己实现,您可能应该从阅读它们的工作原理开始。

https://docs.python.org/3/tutorial/controlflow.html?highlight=loop#for-statements

最后但并非最不重要的是,您可以在我的示例中看到一些 # ... 评论,指出您问题的其他部分的逻辑可能会去哪里:“然后注销并开始新的注册如果注册失败,则使用列表中的下一个用户名,如果注册成功,则跳过。" 我认为我们无法帮助您,因为您的上下文或示例不足问题。

请参阅 this guide 解释如何提出精心设计的问题,以便我们下次能为您提供更多帮助。