Или вы можете использовать встроенный оператор if:
>>> cpage = 'blog'
>>> bc = 'on' if cpage == 'blog' else 'off'
>>> bc
'on'
>>> cpage = 'asdf'
>>> bc = 'on' if cpage == 'blog' else 'off'
>>> bc
'off'
В этой записи этого блога есть некоторая запись, и соответствующий PEP - PEP308 . Встроенный оператор if был введен в Python 2.5.
Этот может быть немного менее питоническим, но вы можете использовать и / или таким образом:
>>> cpage = 'asdf'
>>> bc = (cpage == 'blog') and 'on' or 'off'
>>> bc
'off'
>>> cpage = 'blog'
>>> bc = (cpage == 'blog') and 'on' or 'off'
>>> bc
'on'
Этот чаще используется в лямбда-выражениях, чем в отдельной строке, но в форме
A and B or C
похож на
if A:
return B
else:
return C
Я собирался написать немного более длинное объяснение, но они освещали его лучше в Dive into Python . Они также отметили пару предостережений, которые вам, вероятно, нужно знать.