如何每隔一段时间打印一些东西

时间:2020-08-01 08:18:17

标签: python

我正在尝试学习python,并且在学习过程中遇到了一些问题。

<Field
    component={TextField}
    fullWidth
    type="text"
    name={`${name}.value.codePostal`}
    placeholder="address postal"
/>

每当我按下“输入”键时,我都试图在屏幕上打印一些东西,但是我是一个极端的初学者,所以我真的不知道该怎么做。有人可以帮我完成这项任务吗?

4 个答案:

答案 0 :(得分:1)

您可以创建一个新的布尔变量,以跟踪之前是否已按下Enter键。这样,每次for循环迭代时,pressed的值都会切换,并且只有当pressed的值为True时,它才会输出某些内容。

import time
import pyautogui

def SendScript():
    pressed = False
    time.sleep(2)
    with open('script.txt') as f:
        lines = f.readlines()
    for line in lines:
        time.sleep(2)
        if pressed:
            print("Something")
        pressed = not pressed
        pyautogui.typewrite(line.strip())
        pyautogui.press('enter')
SendScript()

答案 1 :(得分:1)

通过更后退的方法,您可以执行以下操作:

events=['event1', 'event2', 'event3', 'event4', 'event5', 'event6', 'event7', 'event8']

counter = 0
for event in events:
    counter += 1
    if counter % 2 == 0: # ie do stuff when divisible by 2, ie when its even
        print('print what you want to be printed every second time')
    else:
        pass

当然,您不会像本例中那样遍历事件。重点是统计事件,并且仅在计数为偶数时才做事。

答案 2 :(得分:1)

正如已经在另一个答案中指出的那样,可以使用bool来实现简单的切换,然后执行代码,以在每次发生某些情况时切换它:

thing = False
:
if happens(something):
    thing = not thing

这对于在两个状态之间切换是很好的。允许更多状态的更通用的方法是使用数字变量和模运算符:

times = 0
maxtimes = 12
:
if happens(something):
    times += 1
    if times % maxtimes == 1:
        print("ding dong")

如果您想在第12、24等迭代中打印,而不是在第13、13等中进行打印,则模可以与0进行比较,或者,如果您想要的话,当然可以在周期内使用任何其他偏移量。

>

另一个有用的技巧是在零和其他值之间进行翻转。

value = 0
othervalue = 1234
:
if happens(something):
    value = othervalue - value

当然,您实际上可以在任意两个值之间翻转;从它们的总和中减去当前值以获得另一个。

不用说, just 本身并不是非常有用。您可能还会在if happens(something):块内添加一些(直接或间接)用户可见的操作。

答案 3 :(得分:0)

您可以为此使用生成器:

def everySecondTime():
    while True:
        yield "hi"
        yield "not hi"

mygen = everySecondTime()
print(next(mygen))
print(next(mygen))
print(next(mygen))
print(next(mygen))

此打印

hi
not hi
hi
not hi

我相信您很清楚如何使它适应其他操作。

这种方法是否比仅使用布尔值更好还值得商,,但我想我会留在这里,以便您可以了解生成器(yield关键字)。