J'ai travaillé sur un jeu en Python basé sur du texte, et j'ai rencontré une situation où je veux formater une chaîne de caractères différemment en fonction d'un ensemble de conditions.
En particulier, je veux afficher du texte décrivant des objets dans une pièce. Je veux que cela soit affiché, dans la description de la pièce, uniquement si l'objet en question est dans la liste d'objets de l'objet pièce. De la manière dont c'est configuré, je pense que simplement concaténer des chaînes en fonction de conditionnelles ne donnera pas le résultat voulu, et il serait préférable d'avoir une chaîne différente pour chaque cas.
Ma question est, y a-t-il une méthode pythonique pour formater des chaînes en fonction du résultat d'une condition booléenne ? Je pourrais utiliser une structure de boucle for, mais je me demandais s'il y avait quelque chose de plus simple, similaire à une expression générateur.
Je recherche quelque chose de similaire à ceci, sous forme de chaîne de caractères
num = [x for x in xrange(1,100) if x % 10 == 0]
Comme exemple général de ce que je veux dire :
print "Au moins, c'est ce que %s m'a dit." %("il" if gender == "male", else: "elle")
Je réalise que cet exemple n'est pas du Python valide, mais il montre, en général, ce que je recherche. Je me demande s'il existe une expression valide pour le formatage de chaînes booléennes, similaire à ce qui précède. Après avoir cherché un peu, je n'ai rien trouvé spécifiquement sur le formatage conditionnel de chaînes. J'ai trouvé plusieurs publications sur les chaînes de format en général, mais ce n'est pas ce que je recherche.
Si quelque chose comme ça existe effectivement, ce serait très utile. Je suis également ouvert à toute méthode alternative qui pourrait être suggérée.