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