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

Python中如何实现输入名称的循环校验直至输入合法?

问题原因与解决方法

问题出在哪?

你的代码只做了单次校验:第一次输入错误时仅重新提示一次,但如果第二次输入还是不合法,程序就没有后续判断逻辑了,自然无法实现「持续提示直到输入合法」的需求。

解决方法:用while循环实现持续校验

把输入、校验逻辑放到while循环里,只要输入的名字不在合法列表中,就一直重复提示用户重新输入,直到输入合法才退出循环,然后输出名字的含义。

修改后的代码:

names_meaning = {
  "Taiwo": "First of a twin",
  "Tariro": "Hope",
  "Joseph": "God will add",
  "Joel": "YHWH (or LORD) is God",
  "Jude": "Praised",
  "Hannah": "Favour or Grace"
}
family_names = list(names_meaning.keys())

# 持续提示直到输入合法
while True:
    name = input("Please type a name to know the meaning: ").capitalize()
    if name in family_names:
        # 输入合法,跳出循环
        break
    # 输入非法,提示并继续循环
    print(f"You can only pick a name from this list of names {family_names}.")

# 输出名字含义
print(f"{name} means: {names_meaning[name]}\n")

代码说明

  • while True创建一个无限循环,直到遇到break才会退出
  • 每次循环都会重新获取用户输入并处理首字母大写
  • 若输入合法,执行break跳出循环,然后执行后续的含义输出
  • 若输入非法,打印提示信息,循环继续,再次要求用户输入

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 18:57:17