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

Python中while循环外print语句无法执行问题排查

问题分析与解决:循环外print语句无法执行

你的代码里,循环外的print("why don't you print?")永远无法执行,核心问题出在这一段逻辑:

if dato == done:
    print("Last expression is: ", last_expression)
    return dato
    break

当dato等于done时,return dato会直接终止整个函数的运行——Python中函数一旦执行return语句,会立刻跳出函数,后续的break根本没有机会被执行,循环也就无法正常退出,自然永远到不了循环外的print语句。

修正方案

方案1:用break替代return(保留循环外的print)

如果希望循环外的print语句能执行,把return去掉,换成break,让循环正常退出后继续执行后续代码:

def eval_cycle():
    done = 'done'
    last_expression = ' '
    while True:
        dato = eval(input('Insert an expression: '))
        if dato == done:
            print("Last expression is: ", last_expression)
            break  # 用break退出循环,而非直接终止函数
        last_expression = dato
        print(dato)
    print("why don't you print?")

方案2:保留return但调整逻辑(需函数返回值时)

如果你的函数需要返回值,可以把return移到循环外,确保print语句先执行:

def eval_cycle():
    done = 'done'
    last_expression = ' '
    while True:
        dato = eval(input('Insert an expression: '))
        if dato == done:
            print("Last expression is: ", last_expression)
            break
        last_expression = dato
        print(dato)
    print("why don't you print?")
    return done  # 在循环外执行return,保证print先运行

另外提醒:eval()函数存在安全风险,若输入不可信的代码会引发安全问题,实际开发中建议谨慎使用。

内容的提问来源于stack exchange,提问作者jane12

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 09:35:32