You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 15:45:01