3 votes

python ne met pas de majuscule après une apostrophe

Premier message, alors allez-y doucement avec moi. J'essaie de faire en sorte que lorsque je lance ma classe, le nom du restaurant apparaisse comme un titre. Le problème que j'ai rencontré avec Joe's est qu'il apparaît comme Joe's avec un S majuscule lorsque j'utilise title(). Lorsque j'utilise la fonction capitalize(), le nom de Joe's s'affiche bien, mais celui de Burger King s'affiche sous la forme Burger King avec un k minuscule. J'essaie de trouver un moyen de simplifier ce processus afin d'obtenir la lettre majuscule de chaque mot, sans mettre le S en majuscule après l'apostrophe. L'exemple sur lequel je travaille est tiré du chapitre 9 du Python Crash Course. J'utilise Geany avec la version 3.xx de Python. Merci pour votre aide.

class Restaurant():
    def __init__(self, restaurant_name, cuisine_type):
        """Initialize name and cuisine type"""
        self.restaurant_name = restaurant_name
        self.cuisine_type = cuisine_type

    def describe_restaurant(self):
        print(self.restaurant_name.title() + " serves " + self.cuisine_type)

    def open_restaurant(self):
        print(self.restaurant_name.capitalize() + " is now open!")

restaurant = Restaurant('joe\'s', 'mexican')
burger_king = Restaurant('burger king', 'burgers')
restaurant.describe_restaurant()
restaurant.open_restaurant()
burger_king.describe_restaurant()
burger_king.open_restaurant()

0voto

Oxymoron88 Points 334

Il suffit de diviser et de joindre dans open_restaurant

class Restaurant():
    def __init__(self, restaurant_name, cuisine_type):
        """Initialize name and cuisine type"""
        self.restaurant_name = restaurant_name
        self.cuisine_type = cuisine_type

    def describe_restaurant(self):
        print(self.restaurant_name.title() + " serves " + self.cuisine_type)

    def open_restaurant(self):
        Name = self.restaurant_name
        print(' '.join([x.capitalize() for x in Name.split(' ')]) + " is now open!")

restaurant = Restaurant('joe\'s', 'mexican')
burger_king = Restaurant('burger king', 'burgers')
restaurant.describe_restaurant()
restaurant.open_restaurant()
burger_king.describe_restaurant()
burger_king.open_restaurant()

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X