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

使用random.choice随机选择函数实现加减1功能遇问题求助

问题分析与修正方案

原代码存在的问题

  • 内部函数adding和substracting仅修改局部参数x,没有返回值,无法影响外部的x变量
  • 执行random.choice([adding,substracting])只是选中了函数对象,但没有调用函数,加减逻辑根本没执行
  • 外部函数的参数x被重新赋值,实际完全没用上这个入参

修正后的代码(两种实现方式)

方式1:修复嵌套函数逻辑

import random
def addsubone():
    n = [1,2,3,4,5,6]
    x = random.choice(n)
    def adding(x):
        return x + 1
    def substracting(x):
        return x - 1
    # 选中函数后立即调用,将结果赋值给x
    x = random.choice([adding, substracting])(x)
    return x
print(addsubone())

方式2:简化实现(推荐)

直接跳过嵌套函数,用增量列表实现更简洁:

import random
def addsubone():
    n = [1,2,3,4,5,6]
    x = random.choice(n)
    # 随机选择+1或-1的增量
    x += random.choice([1, -1])
    return x
print(addsubone())

修正说明

  • 移除了无用的外部函数参数x,因为函数内部会重新随机选取初始数字
  • 方式1中让内部函数返回修改后的值,选中函数后立即调用并更新x
  • 方式2直接通过随机增量实现需求,避免了嵌套函数的冗余逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 08:50:36