Tu dois ajouter une vérification au début de ta fonction, en utilisant le keyword in pour t'assurer que le type entré par l'utilisateur est bien défini dans ta liste de types. Pense aussi à normaliser la chaîne de caractère via la méthode `.lower()`.
Par exemple :
def assign_car(car_name, car_type):
car_types = ["peugeot", "opel", "ferrari"]
if car_type.lower() not in car_types:
raise ValueError("Car type should be one of %s, not: %s" % (car_types, car_type))
print("Car %s is of valid type %s" % (car_name, car_type))
Pour récupérer le nom et le type de ta voiture à partir de l'entrée de l'utilisateur, tu peux utiliser la fonction .split(). Mais attention, cela peut générer une erreur si l'utilisateur entre une chaîne de caractères dépourvue de ":", il faudra donc que tu ajoutes une autre vérification:
car = input("Entrez le nom et type du véhicule en respectant le format nom:type")
print(car) # Michel:peugot
car_name, car_type = car.split(":")
Finalement, tu pourras utiliser une boucle infinie pour demander en continu le nom et type du véhicule à ton utilisateur jusqu'à ce qu'il rentre quelque chose de valide :
while 1:
# Ajoute le code pour récupérer l'input ici
try:
assign_car(car_name, car_type)
break
except ValueError:
pass
# Une fois ici, les voitures sont correctement nommées