Python代码if语句内运行clear()函数不触发else分支问题咨询
问题原因
你当前的clear()放置位置是while循环体的末尾、和if-else分支同级,不管用户答对还是答错,只要执行完if/else里的打印逻辑,都会立刻触发清屏,所以else分支打印的失败提示刚输出就被清掉,肉眼根本看不到。
如果把clear()再往外层缩进(比如放到提问逻辑之前),就会出现你说的还没等看到对错提示就清屏的问题。
正确修改方案
你只需要把clear()移到答对的if分支内部,放在打印获胜提示的代码后面,同时删掉原来循环末尾的clear()即可,修改后的对应代码片段如下:
if ans == count(num_a,num_b): win += 1 print ("A win") # 仅答对时清屏,再进入下一轮 clear() else: print (f"Wrong. You lose. Win = {win}") play_on = True # 原位置的clear()直接删除
逻辑说明
- 答对时:先打印获胜提示给用户看到,再清屏进入下一轮,新的题目不会和上一轮内容重叠
- 答错时:直接打印失败提示和最终得分,结束游戏,不会清屏,用户可以完整看到最终结果
内容的提问来源于stack exchange,提问作者meme
相关产品推荐
相关产品推荐

