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

Python按概率随机触发按键时点赞分支计数不减值问题排查

问题根因

你代码里的多个逻辑错误共同导致计数不生效、代码运行异常,核心问题如下:

  • 循环条件写反:初始amount_like = 20,循环判断写的while amount_like<=0,初始值完全不满足进入循环的条件,循环体根本不会执行
  • 随机函数用法完全错误:random.choices()返回值是列表类型,Python3不支持列表和整数直接比大小,你写的random.choices(['a','b','a','a']) <= 0运行时会直接抛出TypeError,根本进不到内层的点赞逻辑分支;另外你写的候选集['a','b','a','a']对应概率是a占75%、b占25%,不符合你要求的82.5%/17.5%的概率规则,也没有传入权重参数
  • 按键触发时机错误:你在循环外就定义了a = keyboard.send("LEFT")、b = keyboard.send("RIGHT"),代码刚启动就会直接触发左右键操作,不是等随机选中对应分支后才执行;且这两个变量存的是按键函数的返回值(通常为None),不是可执行的操作本身
  • 分支逻辑混乱:点踩分支里误写为发送左键keyboard.send("LEFT");elif amount_like() <=0:把整数变量amount_like当函数调用,会直接抛类型错误;随机选择的结果没有和后续操作分支绑定,随机逻辑完全失效
修正后可运行代码
import random
from time import sleep
# 提前导入你用到的keyboard模块、likes/dislikes业务判断函数

amount_like = 20
# 剩余待点赞数大于0时持续执行循环
while amount_like > 0:
    # 按指定权重随机选择操作,82.5%概率选点赞、17.5%概率选点踩
    selected_op = random.choices(
        population=['a', 'b'],
        weights=[82.5, 17.5],
        k=1
    )[0] # 取返回列表的第一个元素,即为本次选中的操作
    op_success = False

    if selected_op == 'a':
        # 选中点赞分支才发送左键
        keyboard.send("LEFT")
        if likes():
            amount_like -= 1
            print('Лайк сделан...')
            op_success = True
            sleep(1)
    elif selected_op == 'b':
        # 选中点踩分支才发送右键
        keyboard.send("RIGHT")
        if dislikes():
            print('Дизлайк отправлен...')
            op_success = True
            sleep(1)
    
    # 两个操作都没执行成功则触发跳过逻辑
    if not op_success:
        print('Матч скипнут...')
        sleep(1)

print('Успех')
print('Цикл окончен, лайков осталось =', amount_like)
关键修正说明
  • 调整循环判断条件为amount_like > 0,初始值20时可正常进入循环,每成功完成一次点赞计数减1,计数归0时自动退出循环
  • 修正随机函数用法:显式传入weights参数匹配要求的概率,取出随机选择的结果值再做分支判断,避免类型错误
  • 把按键发送逻辑移到对应分支内部,只有随机选中对应操作时才触发按键,修正点踩分支的按键为RIGHT
  • 新增操作成功标记,点赞、点踩都未执行成功时自动触发跳过逻辑
  • 移除把整数当函数调用的错误写法,amount_like -= 1仅在点赞操作实际执行成功时触发,保证计数准确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.07 16:15:42