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

编写Guess Who?猜名字小游戏时代码功能无法正常运行求助

Guess Who? 猜名字游戏问题修复说明

问题原因定位

  • 变量错误:首先是nombreelegido=print(...)的错误赋值,print()的返回值为None,你相当于直接把存储用户猜测的变量赋值成了空值;其次接收用户输入的变量名拼写错误,写为了nobreelegido(缺失字母m),用户输入的内容根本没有存入正确的校验变量。
  • 逻辑顺序错误:当前代码先接收用户输入,再随机生成目标名字,逻辑颠倒,就算变量正确也无法匹配校验。
  • 函数未调用:仅完成了validanombre校验函数的定义,没有编写主动调用的代码,函数不会自动执行,自然无法生效。
  • 无限递归风险:校验函数末尾又调用了自身,没有设置终止条件,一旦调用就会进入无限循环,最终触发栈溢出报错。

修复方案

完整修复后代码

import random
# 存储待猜测的演员名字列表
actores = ["Leonardo","Pedro","Marilyn","Tom","Brad","Angelina","Meryl"]
# 先随机抽取目标名字
nombrerandom = random.choice(actores)
# 展示提示信息、接收用户输入
print("Adivina quien es el actor que estoy pensando de los siguientes nombres:",actores)
nombreelegido = input("Dame el nombre del actor:")
# 公布正确答案
print("El nombre del actor era:",nombrerandom)

def validanombre(nombreelegido,nombrerandom):
    if nombreelegido == nombrerandom :
        print("Su respuesta es correcta")
    else:
        print("Su respuesta es incorrecta")

# 调用校验函数执行逻辑
validanombre(nombreelegido,nombrerandom)

核心修改点

  • 调整执行顺序:把随机生成目标名字的逻辑移到用户输入之前,保证校验的逻辑合理性
  • 修正变量错误:删除给nombreelegido赋值print的错误代码,修正用户输入的变量名拼写
  • 删除校验函数内的递归调用代码,避免无限循环
  • 末尾添加校验函数的调用代码,触发校验逻辑

内容的提问来源于stack exchange,提问作者Jorge Vela Fernández

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 11:48:02