Я работал над текстовой игрой на Python и натолкнулся на случай, когда я хочу отформатировать строку по-разному в зависимости от набора условий.
В частности, я хочу отображать текст, описывающий предметы в комнате. Я хочу, чтобы это отображалось в описании комнаты тогда и только тогда, когда рассматриваемый объект элемента находится в списке элементов объекта комнаты. Я чувствую, что простое объединение строк на основе условных выражений не будет выводиться так, как я хочу, и было бы лучше иметь разные строки для каждого случая.
У меня вопрос, есть ли какой-нибудь питонический метод форматирования строк на основе результата логического условного выражения? Я мог бы использовать структуру цикла for, но мне было интересно, есть ли что-нибудь попроще, похожее на выражение генератора.
Я ищу что-то похожее на это в строковой форме
num = [x for x in xrange(1,100) if x % 10 == 0]
В качестве общего примера того, что я имею в виду:
print "At least, that's what %s told me." %("he" if gender == "male", else: "she")
Я понимаю, что этот пример недействителен Python, но он показывает, в общем, то, что я ищу. Мне интересно, есть ли какое-либо допустимое выражение для форматирования логической строки, подобное приведенному выше. Немного поискав, я не смог найти ничего, относящегося конкретно к условному форматированию строк. Я нашел несколько сообщений о строках формата в целом, но это не то, что я ищу.
Если что-то подобное действительно существует, это было бы очень полезно. Я также открыт для любых альтернативных методов, которые могут быть предложены. Заранее благодарим за любую помощь, которую вы можете предоставить.