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

Python开发命令机器人时cmds变量无法返回、程序空白崩溃问题

问题根因

你的代码存在4个直接导致崩溃、无输出、逻辑失效的问题:

  • 函数传参不匹配:slap函数定义时要求传入cmds参数,但内部递归调用slap()时未传入任何参数,会直接触发参数缺失报错导致程序崩溃;内部嵌套的con_p函数定义要求传入cmds、con两个参数,调用con_p()时同样未传参,也会触发报错。
  • 输入读取逻辑错误:cmds变量仅在程序启动时读取一次,用户在交互环节输入n后,con_p的返回值没有被任何变量接收,程序会直接进入后续的死循环——该循环仅判断cmds == "br"才会退出,但此时cmds还是最初输入的./slap,永远无法满足退出条件,程序会无限空转,表现为终端空白无输出。
  • 冗余无效代码:g、g1两个变量存储的是print()函数的返回值(固定为None),没有任何实际作用;question()函数定义后从未被调用,对应逻辑永远不会执行。
  • 命令判断逻辑位置错误:所有命令的分支判断都写在主循环外,仅会在程序启动时执行一次,后续用户输入的新命令完全不会被处理。
修复后可运行代码
import time

# 初始化欢迎流程
print("Hi User! Pick a name for me!")
time.sleep(1)
name = input("Name for Bot: ")
print("Ooh", name + "!", "thats a cool name!")

print("What should I call you?")
time.sleep(1)
user_name = input("Your name: ")
print(user_name + "...", "cool name!")
time.sleep(1)

# 命令功能实现
def slap():
    while True:
        slap_p = input("Who do you want to slap: ")
        caption_for_slap = input("Caption for slapping: ")
        print("Loading...")
        time.sleep(3)
        print(caption_for_slap, "👊👊👊👊👊👊", ". You deserved it", slap_p)
        con = input("Would you like to continue y/n - ")
        if con == "n":
            return

def about_rb():
    print("I am a robot named", name + ".", "Thanks to", user_name, "for picking that name for me!")
    time.sleep(1)
    print("My age is 35 :)")

def answer_question(cmd):
    if cmd == "do you like Siri or Cortana":
        print("I love all robots! I dont really have a preference for both ♥")

# 主命令交互循环
while True:
    current_cmd = input("Say any command you would like :) - ")
    if current_cmd == "br":
        break
    elif current_cmd == "./slap":
        slap()
    elif current_cmd == "./about_rb":
        about_rb()
    else:
        answer_question(current_cmd)
修复说明
  • 移除了无意义的嵌套con_p函数,将slap功能的继续/退出逻辑直接整合到slap内部循环中,彻底解决参数不匹配的报错问题
  • 将命令输入读取逻辑移到主交互循环内,每次执行完功能后都会重新等待用户输入,不会出现执行一次命令就卡死空转的问题
  • 清理了所有冗余无效变量和未调用的函数,补全了问答功能的调用逻辑
  • 所有命令判断逻辑都放在主循环内,用户任意时刻输入的命令都能被正常响应

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 13:48:12