Python 3实现仅接受"y"/"n"输入并在错误时循环提示
我懂你想要的效果——就是得把用户的输入死死限制在'y'或者'n'上,输错了就一直弹提示让重新输对吧?这事儿用循环其实很容易搞定,我给你两种实用的写法,你挑喜欢的用:
方法一:用while循环持续校验输入
这种写法先获取一次输入,然后判断是否符合要求,不符合就进入循环反复提示:
# 先获取初始输入并转成小写,兼容大写Y/N user_choice = input("请输入'y'或'n':").lower() # 只要输入不在允许的列表里,就一直循环提示 while user_choice not in ['y', 'n']: print("输入不对哦!请重新输入。") user_choice = input("请输入'y'或'n':").lower() # 循环结束说明输入正确,后续可以处理逻辑 print(f"确认你的选择:{user_choice}")
方法二:用while True配合break跳出循环
这种写法更直观,先开启一个无限循环,输入正确就直接跳出,否则继续提示:
while True: # strip()去掉输入前后的空格,避免用户误输入空格导致校验失败 user_choice = input("请输入'y'或'n':").strip().lower() if user_choice in ['y', 'n']: print(f"你的选择是:{user_choice}") # 输入正确,跳出循环 break else: print("无效输入!请只输入'y'或者'n'~")
小提示:
- 如果想严格区分大小写(只接受小写y/n),去掉代码里的
.lower()就行。 - 如果不需要处理用户输入的空格,把
.strip()去掉也可以。
内容的提问来源于stack exchange,提问作者z.mcg
相关产品推荐
相关产品推荐

