如何为Python姓名输入功能添加循环,实现非空校验?
问题修正:姓名输入校验逻辑优化
原代码存在两个核心问题导致无法实现持续询问的需求:
- 当输入为空时,
while循环内的return语句会直接终止函数,跳过后续的输入获取步骤。 - 单独的
if判断属于冗余逻辑,循环本身可以处理空输入的校验。
修正后的代码
def hello(): name = "" while name == "": name = input("Please enter your name : ").strip() if name == "": print("此字段不能为空") print(f"Hello {name},希望你喜欢这个测验") hello()
关键修改说明
- 初始化
name为空字符串,确保首次进入循环执行输入获取。 - 将输入操作和空值校验整合到
while循环内,只要输入为空就重复询问。 - 新增
strip()方法处理输入,避免用户输入纯空格被误判为有效输入(提升校验严谨性)。 - 移除错误的
return语句,保证循环能正常执行直到获取有效输入。 - 使用f-string简化问候语的拼接,代码更简洁易读。
内容的提问来源于stack exchange,提问作者kate Blocki
相关产品推荐
相关产品推荐

