Python调整代码将else分支提示纳入循环实现持续询问有效用户名
代码修改方案
原代码的while...else分支仅会在循环未被break中断时触发,要将该分支的空输入提示逻辑整合到循环内部,可改用无限循环结构收拢所有校验逻辑,修改后代码如下:
while True: name = input("你叫什么名字:").strip() # 对应原else分支的空输入处理逻辑 if not name: print("你难道没有名字吗?") continue # 校验是否为纯数字的无效姓名 if name.isnumeric(): print("请输入有效的姓名") continue # 校验通过后输出问候并结束循环 print(f"你好{name}") break
修改说明
- 用
while True构建无限循环,不需要依赖while的else从句就能覆盖所有输入场景 - 新增
strip()处理,过滤用户输入的首尾空格,避免全空格的无效值被判定为合法 - 把原
else分支的空输入判断逻辑直接放到循环内,每次输入都会优先校验是否为空 - 和原代码逻辑相比,修改后的代码不会因为中途输入空就直接退出程序,会一直保持询问状态,直到用户输入符合要求的姓名,完全匹配“持续询问直至输入有效姓名”的需求
内容的提问来源于stack exchange,提问作者aya
相关产品推荐
相关产品推荐

