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

Python计算器代码无报错无输出,请求排查执行异常原因

问题排查:代码陷入死循环导致无输出

你的代码核心问题是陷入死循环,永远执行不到最后的print(int_list)语句,所以控制台显示空白。

死循环的具体过程

初始list1 = ["5", "-", "2", "+", "1"],进入while len(list1) > 0循环后:

  1. 第一次循环:
    • 因为int_list为空,执行if分支:把"5"转整数加入int_list,list1.pop(0)后,list1变为["-", "2", "+", "1"](长度4)。
    • 执行int_list.append(0)→[5,0],再append(int(list1[1]))(list1[1]是"2")→[5,0,2]。
    • 两次pop(0)后,int_list只剩[2],但**list1的长度还是4,没有被进一步修改**。
  2. 后续循环:
    • int_list长度为1,不满足if len(int_list) < 1的条件,跳过if分支。
    • 重复执行append(0)、append(int(list1[1]))(此时list1[1]始终是"2")、两次pop(0),最终int_list回到[2],而list1的长度一直保持4,循环永远无法结束。

修复思路与代码示例

要实现计算器的功能,需要每次处理运算符时,用计算结果替换原有的操作数和运算符,同时缩短list1的长度,让循环能正常退出。修正后的代码如下:

list1 = ["5", "-", "2", "+", "1"]
int_list = []
while len(list1) > 0:
    if len(int_list) < 1:
        # 初始化第一个数字
        int_list.append(int(list1[0]))
        list1.pop(0)
    # 取出运算符和第二个数字
    operator = list1[0]
    list1.pop(0)
    num = int(list1[0])
    list1.pop(0)
    # 根据运算符计算结果
    if operator == "-":
        int_list[0] = int_list[0] - num
    elif operator == "+":
        int_list[0] = int_list[0] + num
print(int_list)

这段代码会依次计算5-2=3,再计算3+1=4,最终输出[4]。

内容的提问来源于stack exchange,提问作者Enes Mirza Kılıç

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 19:39:18