我正在尝试学习python,并且在学习过程中遇到了一些问题。
<Field
component={TextField}
fullWidth
type="text"
name={`${name}.value.codePostal`}
placeholder="address postal"
/>
每当我按下“输入”键时,我都试图在屏幕上打印一些东西,但是我是一个极端的初学者,所以我真的不知道该怎么做。有人可以帮我完成这项任务吗?
答案 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
关键字)。