Python函数实现重复获取输入至预期值:代码补全求助
解决重复询问"are you sure"的问题
嘿,咱们来搞定这个需求:当用户回答"are you okay?"为"good"之后,得一直重复问"are you sure"直到他们输入"Yes"才行对吧?
你的现有代码框架里,???的位置需要填一段循环询问的逻辑,直接看修正后的完整代码:
def n_g(): first_input = input("are you okay?") if first_input == "good": if input("are you sure") == "Yes": return "Nice" # 这里就是要填充的代码 while True: sure_response = input("are you sure") if sure_response == "Yes": return "Nice" return n_g()
不过其实更清爽的写法是把内层的if直接换成while循环,省得多写一次输入语句,逻辑更简洁:
def n_g(): first_input = input("are you okay?") if first_input == "good": # 只要输入不是"Yes",就一直重复询问 while input("are you sure") != "Yes": pass # 啥也不用做,继续循环就行 return "Nice" return n_g()
说下为啥这么写:原来的代码里第一次问"are you sure"没得到"Yes"的话,就会走到return ???的分支。咱们在这里用循环把询问逻辑包起来,只要用户没输入"Yes"就一直重复提问,直到符合条件后立即返回"Nice",完全不会重新触发"are you okay?"的提问,刚好匹配你的需求。
内容的提问来源于stack exchange,提问作者Ryan
相关产品推荐
相关产品推荐

