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

如何使用try-except校验用户输入仅含字母,未通过校验时禁止继续操作

问题分析与代码修复

核心问题点

  • 输入不合法触发TypeError异常后,你在except分支直接写了return False,直接终止了函数执行、跳出了while True循环,不会再提示用户重新输入,只要调用方没判断这个返回值就会直接执行后续操作
  • 合法输入分支里你把return self.name注释了,改成break跳出循环后,函数最终没有显式返回有效结果,调用方没法判断校验是否通过

修复后的代码

def inputdata(self):
    while True:
        try:
            self.name = input('\nEnter your full name:')
            if self.name.isalpha():
                print('Data is valid')
                return self.name # 校验通过直接返回合法值,结束函数
            else:
                raise TypeError
        except TypeError:
            print('Please enter letters only.')
            # 此处删除return False,循环会自动进入下一轮,要求用户重新输入

调用注意事项

调用该方法时需要接收返回值,确认拿到合法结果后再执行后续业务逻辑,示例:

# 调用示例
valid_name = your_instance.inputdata()
# 拿到返回的合法姓名后再执行后续操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 10:06:00