使用if ... else语句连接两个字符串的问题

时间:2014-06-16 21:17:24

标签: python if-statement

我尝试连接两个像这样的字符串

print 'AAA' if True else 'BBB' + 'CCC' if True else 'DDD'

在终端中,它只是打印像'AAA'而不是'AAACCC'。为什么?还有其他替代方式吗?

1 个答案:

答案 0 :(得分:2)

+的{​​{3}}高于条件表达式。

结果,您的表达式分组如下:

('AAA') if (True) else (('BBB' + 'CCC') if (True) else ('DDD'))

您需要使用括号来覆盖优先级:

print ('AAA' if True else 'BBB') + ('CCC' if True else 'DDD')

演示:

>>> print 'AAA' if True else 'BBB' + 'CCC' if True else 'DDD'
AAA
>>> print 'AAA' if False else 'BBB' + 'CCC' if True else 'DDD'
BBBCCC
>>> print ('AAA' if True else 'BBB') + ('CCC' if True else 'DDD')
AAACCC