Я працював над текстовою грою на 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, але загалом показує, що я шукаю. Мені цікаво, чи існує якийсь дійсний вираз для булевого форматування рядка, подібний до вищезазначеного. Трохи розшукавши, мені не вдалося знайти нічого, що стосується конкретно форматування умовного рядка. Я знайшов кілька дописів про форматування рядків загалом, але це не те, що я шукаю.
Якщо щось подібне справді існує, це було б дуже корисно. Я також відкритий для будь-яких альтернативних методів, які можуть бути запропоновані. Заздалегідь дякуємо за будь-яку допомогу, яку ви можете надати.