Python3中如何实现用户输入字符q后正确终止while循环
问题原因
当前代码的循环判断时机不对:while w != 'q'的校验只发生在每一轮循环启动前,一旦进入循环体,程序会按顺序逐行执行代码——你读取完W#的输入后没有立刻检查输入内容是否为q,会直接继续弹出姓名、手机号的输入提示。哪怕第一次就输入q,也要等这两个后续输入都执行完,回到循环开头做校验时才会退出,和预期的“输q立刻停”不符。
修正代码
最直接的改法是把循环改成无条件启动的while True结构,每次读取完W#的输入立刻做校验,匹配到q就直接用break终止循环,跳过后续所有输入逻辑:
while True: w = input("Enter the student's W#:") if w == 'q': break name = input("Enter the student's name:") phone = input("Enter the students phone number:") # 下方可写学生信息的存储、处理等业务逻辑
可选优化
如果需要兼容用户误输入大写Q、或者输入前后带空格的场景,可以把判断条件改成:
if w.strip().lower() == 'q': break
内容的提问来源于stack exchange,提问作者larry8989
相关产品推荐
相关产品推荐

