带长度限制的随机密码生成器输入重提示功能实现问题求助
密码长度输入校验实现方案
现有代码问题说明
return语句仅可在Python函数内部使用,直接写在全局代码中会触发语法错误,无法实现重新执行输入逻辑的效果- 未使用循环结构包裹输入逻辑,代码只会执行一次输入操作,无法实现重复提示用户输入的需求
正确实现代码
while True: # 捕获非数字输入异常,避免程序崩溃 try: length = int(input('\n请输入密码长度:')) except ValueError: print("输入无效,请输入数字") continue # 长度校验 if length < 8: print('密码长度过短,必须不少于8个字符') elif length > 16: print('密码长度过长,必须不多于16个字符') else: print('密码长度符合要求') # 校验通过,跳出循环 break # 后续密码生成逻辑可在此处执行,此时length为合法值
逻辑说明
- 通过
while True构建无限循环,只要输入不符合要求就会自动重新进入输入流程 - 新增非数字输入的异常处理,覆盖用户输入字母、符号等非法格式的场景
- 校验通过后执行
break跳出循环,即可拿到合法的长度值继续后续开发
内容的提问来源于stack exchange,提问作者wanderingsoul
相关产品推荐
相关产品推荐

