簡體   English   中英

如何每次將值增加1而不重復

[英]how to increase the value by 1 each time without repeating

import pyautogui as pg
pg.FAILSAFE = True
from time import sleep

for i in range(100, 130):

    sleep(1)
    pg.tripleClick(x=1057, y=56)
    pg.typewrite("%d" % i)

    sleep(0.1)
    pg.press('enter')

    i = i + 1
    sleep(0.1)


    pg.tripleClick(x=2734, y=56)
    pg.typewrite("%d" % i)

    sleep(0.1)
    pg.press('enter')

    i = i + 1
    sleep(0.1)


    pg.tripleClick(x=4497, y=56)
    pg.typewrite("%d" % i)

    sleep(0.22)
    pg.press('enter')

    sleep(2)

    i = i + 1

我只是希望能夠每次將 i 的值增加 1 而不會重復相同的數字。 目前它會寫100、101、102循環開始,然后寫101、102、103。我只是希望它每次繼續增加1。 抱歉,我是菜鳥,使用 python 大約需要 5 天

如我所見,您需要在 for 循環中添加一個 step 值。 使用這樣的東西:

for i in range(100, 130, 3):
    # code
    pg.typewrite("%d" % (i-2))
    # code
    pg.typewrite("%d" % (i-1))
    # code
    pg.typewrite("%d" % i)
    

顯然,用 pyautogui 為你做的任何事情替換 print 語句。 您不應該每次都更新i變量。

Python for 循環與其他語言的 for 循環不同。 在 Python 中, for i in range(100, 130):的第一次迭代將始終具有i=100 ,下一個將具有i=101 ,下一個將具有i=102等,即使您以其他方式修改i

由於您實際上希望i到 go 從第一次迭代的100到第二次迭代的循環頂部的103 ,您可能希望使用for i in range(100, 130, 3): 這里, 3表示在每個循環中增加的量。

你可以認為range(100, 130)基本上意味着[100, 101, 102, 103, ..., 129] ,而range(100, 130, 3)基本上意味着[100, 103, 106, 109, ..., 127] (我說“基本上”是因為這些在技術上不是 memory 中的列表,但可以這樣想。)循環的每一步都只是在這個“列表”中向前推進索引。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM