不在循环中中断,不确定要做什么

2024-10-03 21:29:02 发布

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

为了练习python,我正在做一些随机项目,并尝试制作一个垃圾机器人,它可以垃圾发送谷歌表单。大部分代码我都写过,但我不知道如何从某个位置循环代码

import pyautogui
import random
import webbrowser
import time
from itertools import count, repeat

list = ["Test", "test", "tesT"]

countA = input("A:")


webbrowser.open('https://docs.google.com/forms/d/1YPhaNvFkncyGuCxIcJ7UhjQDeR55WX20H8cdmPxlSGU/viewform?edit_requested=true', new = 2)


while (countA<countA):
    pyautogui.moveTo(700, 360)
    time.sleep(2)
    pyautogui.click()
    item = random.choice(list)
    pyautogui.write(item)
    time.sleep(1)
    pyautogui.moveTo(700, 430)
    time.sleep(1)
    pyautogui.click()
    time.sleep(2)
    pyautogui.moveTo(700, 255)
    pyautogui.click()
    countA = countA + 1
else:
    break

我想循环的部分:

    pyautogui.moveTo(700, 360)
    time.sleep(2)
    pyautogui.click()
    item = random.choice(list)
    pyautogui.write(item)
    time.sleep(1)
    pyautogui.moveTo(700, 430)
    time.sleep(1)
    pyautogui.click()
    time.sleep(2)
    pyautogui.moveTo(700, 255)
    pyautogui.click()
    countA = countA + 1

我使用break尝试了一个while循环,但以不同的方式失败(主要是告诉我break不在循环中)。我想我成功地把其他部分做好了(如果我错了,请纠正我)。
TLDR:我试图让它请求用户输入它应该循环多少次,然后循环所提到的数量

如果有不清楚的地方,对不起


Tags: 代码importtimesleeprandomitemlist垃圾
1条回答
网友
1楼 · 发布于 2024-10-03 21:29:02

我看到两个问题:

  1. python的input函数返回一个字符串,而不是任何类型的数字。这意味着,如果用户输入^{,行countA = input("A:")countA设置为'3'(字符串)。您需要将其转换为整数。
    如果我们假设您不关心输入验证,则可能如下所示:
countA = int(input("A:"))
  1. 您似乎试图使用同一个变量countA来存储用户希望的迭代次数和已经发生的迭代次数。这导致了无意义的while (countA<countA):,它总是失败。
    您基本上有三种补救方法:
    • 在0处启动一个迭代计数器并递增,直到达到用户指定的数值
    • 递减保存用户输入的变量,直到其达到0
    • 将while循环替换为for _ in range(countA):

而且,错误是正确的;您的break不在循环中。您的break位于else块中,如果while循环因其条件而终止,则会触发该块。见this explanation

相关问题 更多 >