CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[PYTHON] Autoriser seulement un format précis de "input"

Jeeedes
Jeeedes
Niveau 38
10 avril 2018 à 21:10:28

Bonjour, j'aimerais créer une fonction qui demandera à l'utilisateur d'adresser un nom à chaque voiture (par exemple), et j'aimerais que cette fonction n'accepte qu'un seul et unique format de "input".
Format :d) nom:type

exemple de "input" :d) Michel:peugeot Antoine: opel Arnaud:ferrari

Sachant qu'il y a 3 types (les marques de voitures), qui seront dans une liste.
Comment faire?

Dites le si ce n'est pas très claire héhé :noel:
Merci

Blaff12
Blaff12
Niveau 10
11 avril 2018 à 09:25:48

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
Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment