【发布时间】:2021-05-11 01:08:19
【问题描述】:
如果鼠标在 x 秒内没有移动,我正在编写一个程序来移动鼠标(使用 pyautogui lib)。我在开始时两次获取 X,Y 坐标,然后在延时后再次获取,然后将 X 和 Y 值与前一个值进行比较。我的 if 语句存在问题,理论上应该执行上述操作,但经过测试后,它无法按预期工作。任何人都可以建议我可以进行的任何编辑来解决这个简单的问题。
这是我的代码:
#!/usr/bin/env python3
import pyautogui
import time
currentMouseX, currentMouseY = pyautogui.position() #Grabs X,Y mouse position
print("position X1 is", currentMouseX)
print("position Y1 is", currentMouseY)
X1 = currentMouseX
Y1 = currentMouseY
time.sleep(3)
currentMouseX2, currentMouseY2 = pyautogui.position() #Grabs second X,Y position after 3 seconds
X2 = currentMouseX
Y2 = currentMouseY
print("position X2 is", currentMouseX2)
print("position Y2 is", currentMouseY2)
**if ((X1 == X2) and (Y1 == Y2)):
print ("!!! MOVE MOUSE !!!")
else:
print("Mouse does not need to be moved")**
仅供参考:我让 if 语句非常简单,因为我希望它在继续程序之前工作。非常感谢任何帮助。
【问题讨论】:
-
程序输出的值是什么? X1、Y1、X2 和 Y2(因为我认为这可能是一些浮点比较错误)
-
您遇到的实际问题是什么?说它没有按预期工作是没有意义的,而不说它做了什么或你期望什么。
-
X2 = currentMouseX应该是X2 = currentMouseX2(与 y 值相同),否则您总是将初始坐标与其自身进行比较。投票结束为错字。
标签: python python-3.x if-statement pyautogui