代码语法正确但逻辑错误,如何修正以实现指定姓名长度验证功能?
代码逻辑错误修正方案
原代码存在两处核心逻辑问题:
- 姓名长度符合要求时,未按需求显示长度,反而重复要求用户输入姓名
- 用户输入过长时,仅给出提示但程序直接终止,未提供重新输入的机会
修正后的代码:
while True: name = input("tell me your name!") name_length = len(name) if name_length > 18: print("Please enter name with less than 18 letters") else: print(f"Your name's length is {name_length}") break
改动说明:
- 用
while True实现循环,确保用户输入不符合要求时可重新输入,直到输入合法才退出 - 将用户输入的姓名存入
name变量,避免重复调用input()造成不必要的二次输入 - 符合长度要求时,用格式化字符串输出姓名长度,完全匹配需求
- 输入过长时仅提示错误,循环自动回到输入步骤,让用户重新尝试
内容的提问来源于stack exchange,提问作者Raanij
相关产品推荐
相关产品推荐

