对于编程和python来说,我是一个全新的人,但是我最近加入了一个课程。目前,我正在尝试制作一个程序来提示用户输入屏幕上对象中心的坐标。
然后程序将获取项目的X和Y坐标,并在+-15的范围内随机化坐标。因此,如果X坐标为30,则程序将选择15到45的随机数。>
然后程序将在3.2到4.3秒之间随机延迟,并将鼠标从其当前位置移动到随机时间延迟内的随机坐标。
我希望它能够无限循环,直到提示它停止为止,我想我能弄清楚。但是,我不明白如何正确使用参数来允许在函数main()中使用局部变量coords_x,coords_y和click_delay
这是我到目前为止所拥有的:
#! python3
import pyautogui, sys
import random
from random import randint
center_x = int(input("Please enter the X coordinate of the center of the item:"))
center_y = int(input("Please enter the Y coordinate of the center of the item:"))
#y = 23 long 735 - 712
#x = 23 862 - 838
buffer = 17
def randomizex():
min_x = center_x - buffer
max_x = center_x + buffer
coords_x = randint(min_x, max_x)
def randomizey():
min_y = center_y - buffer
max_y = center_y + buffer
coords_y = randint(min_y, max_y)
def randomizedelay():
click_delay = random.uniform(3.2, 4.3)
def main():
randomizex()
randomizey()
randomizedelay()
pyautogui.moveTo(coords_x, coords_y, click_delay)
main()
感谢您的帮助。我发现的类似此类问题的其他答案对于新手来说相当混乱,其中一些是针对python 2的。
答案 0 :(得分:1)
欢迎使用SO(以及编程)!
您几乎可以使用它,所缺少的是将randomizex(), randomizey(), randomizedelay()
函数的返回值保存到变量中,以便可以在main中使用它们。即使您在各自函数中命名变量,命名也不会超出这些函数的范围,因此main
并不知道它们被称为。这样的事情应该起作用:
def main():
coords_x = randomizex()
coords_y = randomizey()
click_delay = randomizedelay()
pyautogui.moveTo(coords_x, coords_y, click_delay)
答案 1 :(得分:0)
def main():
your_x_coords = randomizex()
your_y_coords = randomizey()
您的函数返回x_coords,因此您必须将它们分配给main内部的另一个局部变量。