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
相关产品推荐
相关产品推荐

