这是一本书中的问题,但return
让我感到困惑
它有一个带有三个变量的函数,并返回以下内容:
return (str(a) if b == 0 or a != 1 else '') + ('' if b == 0 else c +('+'+str(b) if b != 1 else ''))
有人能将它分成正常的方式让我更清楚吗? 带括号的括号让我很困惑。
答案 0 :(得分:4)
这是代码正在做的事情:
def someFunc(a,b,p):
if b==0 or a!=1:
part1 = str(a)
else:
part1 = ''
if p==0:
part2 = ''
else:
if b!=1:
part2 = c + '+'+str(b)
else:
part2 = ''
return part1 + part2
答案 1 :(得分:0)
该语句返回一个字符串。
如果b为0或a不为1,则第一部分求值为str(a)
。如果该语句为false,则求值为"。
第二部分评估为"如果b为0.如果该语句为假,则评估为c +' +' str(b)
如果b不是1.如果 语句为false,则计算结果为"。
所以你得到"",str(a) + "
,str(a) + str(c) + '+'(str(b))
或" + str(c) + '+'(str(b))
。