为何输入A队首个小于15的分数后,循环直接执行未触发重复输入逻辑?
问题原因分析
你的代码存在两个核心问题,导致无法实现「每轮输入分数直到总分达到15」的逻辑:
- 输入语句位置错误:获取A队分数的
team_a = int(input("Please enter the score for team A: "))写在while循环外部,只会在程序启动时执行一次。循环内部不会再次触发输入操作,每次循环只会累加第一次输入的固定分数,而非让你重新输入新分数。 - 循环逻辑缺失输入步骤:当前循环仅不断累加初始输入的
team_a值,没有在循环内部加入重新获取用户输入的代码,自然不会进入下一轮输入流程。
修正后的示例代码
team_a_score = 0 team_b_score = 0 total_score = 15 while total_score > team_a_score: # 每轮循环重新获取A队分数 team_a = int(input("Please enter the score for team A: ")) team_a_score += team_a if team_a_score >= total_score: break print("the game is over")
另外代码还有两处细节问题需要注意:
if total_score < team_a_score:的缩进错误,break需要和if保持同一缩进层级- 代码中获取的
team_b分数未被使用,若涉及B队逻辑需补充对应处理
内容的提问来源于stack exchange,提问作者alex
相关产品推荐
相关产品推荐

