You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何允许mouseX、mouseY为非整数值并加入数组

解决Python中允许鼠标坐标为任意非整数值并存入数组的问题

嘿,这事儿其实挺容易搞定的,Python的列表对元素类型兼容性特别友好,完全支持整数和非整数(比如浮点数)共存,所以核心就是正确获取或设置非整数的mouseX/mouseY值,然后直接放进数组就行。下面给你一步步拆解:

1. 先明确Python列表的特性

Python的列表没有强类型限制,你的数组[W,A,D,X,mouseX,mouseY]里,前四个元素可以是整数,后面两个是任意非整数(比如123.45、-67.8这种浮点数),直接存进去完全没问题,不需要额外修改数组的结构。

2. 修改初始值(可选但更规范)

你原来的代码里初始设置了mouseX = 0和mouseY = 0,这是整数类型。如果想一开始就统一用非整数类型,可以改成浮点数初始值:

mouseX = 0.0
mouseY = 0.0

当然,就算初始是整数,后面给它赋值成浮点数也不会有问题,只是统一类型会让代码更清晰。

3. 获取或设置非整数的鼠标坐标

如果是实时获取真实鼠标位置,很多Python的输入库(比如pyautogui、pygame)返回的坐标本身就是浮点数,直接用就行:

示例:用pyautogui获取实时鼠标坐标

import pyautogui

# 在需要更新坐标的地方(比如循环里)调用这个
mouseX, mouseY = pyautogui.position()  # 返回的就是(float, float)类型

如果是模拟或自定义坐标值,直接赋值成任意非整数即可:

# 比如模拟一个非整坐标
mouseX = 456.78
mouseY = -90.12

4. 结合你的现有代码修改

把上面的逻辑融入到你现有的代码里,比如当检测到W键按下时,直接把当前的非整数坐标加入数组:

mouseX = 0.0
mouseY = 0.0
import pyautogui

# 假设w_key_is_pressed()是你自己实现的按键检测函数
def w_key_is_pressed():
    # 这里写你的按键检测逻辑,比如用pynput或pygame
    pass

for data in train_data:
    img = data[0]
    choice = data[1]
    
    # 每次循环更新鼠标坐标(如果需要实时获取的话)
    mouseX, mouseY = pyautogui.position()
    
    # 检测到W键按下时,添加包含非整坐标的条目
    if w_key_is_pressed():
        new_entry = [0, 1, 0, 0, mouseX, mouseY]
        train_data.append(new_entry)

额外注意点

如果你的鼠标坐标是从外部文件或其他来源读取的字符串类型,记得先转换成浮点数:

# 比如读取到的是字符串"123.45"
raw_mouse_x = "123.45"
mouseX = float(raw_mouse_x)

内容的提问来源于stack exchange,提问作者hurkaperpa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:49:35