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

Python AI机器人开发:提取用户姓名并赋值变量技术求助

解决AI机器人识别姓名并提取变量的问题

嘿,我来帮你搞定这个AI机器人的姓名识别问题~你的现有代码里有几个关键问题需要修正,咱们一步步梳理:

原代码的核心问题

  • 条件判断逻辑错误:if "My name is" or "my name is" in inp 这个写法不符合Python逻辑,它会先判断"My name is"是否为真(非空字符串永远为真),导致不管输入什么都会进入分支。正确的做法是统一匹配小写形式,避免大小写敏感。
  • 变量赋值错误:你直接写name = print("Hello", name),这不仅没从输入里提取姓名,还会把print的返回值(None)赋值给name,完全不符合需求。

修正后的代码实现

这里提供两种提取姓名的方案,你可以根据需求选择:

方案1:提取输入的最后一个单词(适合单字姓名)

inp = input("请输入内容: ")
# 将输入转为小写,消除大小写差异
lower_inp = inp.lower()

if "my name is" in lower_inp:
    # 按空格分割输入,取最后一个元素作为姓名
    name = inp.split()[-1]
    print(f"Hello {name}! 很高兴认识你~")

方案2:提取"my name is"后的所有内容(支持全名)

如果用户输入类似"Hi my name is Bryan Smith"这样的全名,方案1只能拿到Smith,这时候可以用下面的方法提取完整姓名:

inp = input("请输入内容: ")
lower_inp = inp.lower()

if "my name is" in lower_inp:
    # 找到"my name is"在字符串中的起始位置,截取后面的内容并去除首尾空格
    name_start_index = lower_inp.index("my name is") + len("my name is")
    name = inp[name_start_index:].strip()
    print(f"Hello {name}! 很高兴认识你~")

代码解释

  • lower_inp = inp.lower():把用户输入统一转为小写,这样不管用户输入"My name is"、"MY NAME IS"还是"hi my name is"都能被识别。
  • 条件判断"my name is" in lower_inp:准确判断用户是否在告知自己的姓名。
  • 两种姓名提取方式:
    • 方案1简单直接,适合用户只输入单个姓名的场景;
    • 方案2更灵活,能支持包含空格的全名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:58:49