我对Python不太熟悉,我在代码中遇到以下问题,有人帮助我解释原因吗?
def caller1(a):
return 'a' if a < 11 else 'a', 'b'
print(caller1(a=5))
def caller2(a):
if a < 11:
return 'a'
else:
return 'a', 'b'
print(caller2(a=5))
c = caller2(a=5)
print(c)
对于主叫方1,我希望输出为'a',但输出为('a','b')
呼叫者2的将打印'a',但最终打印('a','b')(至少根据我的调试将显示('a','b')结果,同时显示'a'和(' a','b')将打印出来。)
为什么会这样?
答案 0 :(得分:0)
中
return 'a' if a < 11 else 'a', 'b'
其他条件仅包含“ a”,而不包含“ a”,“ b”。 'b'与if / else条件之间用逗号分隔。
因此该函数返回“ a”(因为<11为真),后跟“ b”。
return 'a' if a < 11 else ('a', 'b')