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

Python中如何在if/else语句中指定函数返回变量判断

问题分析与解决

你的代码问题出在abc()函数返回的是一个元组,直接拿这个元组和字符串比较永远不会相等,所以才会进入else分支输出something else:。

解决方法

要针对返回的特定变量判断,有两种常用方式:

方式1:解包元组到变量后判断

先把abc()的返回值拆解成两个独立变量,再分别用变量做判断:

def abc():
    i = "False"
    j = "100"
    return i,j

def xyz():
    # 将返回的元组解包为对应变量
    i_val, j_val = abc()
    if i_val == "False":  # 直接和i对应的变量比较
       print("Not Done")
    else:
        if j_val == "101":  # 和j对应的变量比较
            print("something else:")
xyz()

方式2:直接通过索引访问元组元素

abc()返回的元组中,第一个元素对应i(索引0),第二个对应j(索引1),可以直接通过索引取值比较:

def abc():
    i = "False"
    j = "100"
    return i,j

def xyz():
    if abc()[0] == "False":  # 取元组第一个元素(即i)比较
       print("Not Done")
    else:
        if abc()[1] == "101":  # 取元组第二个元素(即j)比较
            print("something else:")
xyz()

为什么原代码不生效?

abc()执行后返回的是('False', '100')这样的元组对象,你用这个元组和字符串"False"比较,两者类型和结构都不同,条件abc() == "False"永远为False,所以会执行else分支的代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 16:15:39