我正在尝试使用一行,如果我的程序中的条件,但它并没有向我展示其他字符串,我认为这是因为该陈述是真实的,并且该程序认为如果语句为false,则必须执行其他代码。
In [506]: string = "wow"
In [507]: string = string + "omg" if string == "wow" else "" + "why this doesn't get added?" if 1 == 1 else ""
In [508]: string
Out[508]: 'wowomg'
我希望string
为'wowomgwhy this doesn't get added?'
它与操作员优先级有关,在第一个if-else
之前对整个+
进行了评估。
尝试这个
string = "wow"
string = (string + "omg" if string == "wow" else "") + ("why this doesn't get added?" if 1 == 1 else "")
print(string)
输出:
WOWOMGWO WHY WHO WHO WHO WHO WHO WHO WHO WHO
您的原始代码等于
string = (string + "omg" if string == "wow" else ("" + "why this doesn't get added?" if 1 == 1 else ""))