IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Découpage et contrôle d'une chaîne de caractères [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    480
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 480
    Par défaut Découpage et contrôle d'une chaîne de caractères
    Bonjour,

    J'ai une chaîne de caractères de la forme 0265987789-00.

    Je souhaite contrôler que les 10 premiers caractères sont des entiers (aucunes lettres ni caractères spéciaux), que le 11 égale à '-' et que les 2 derniers caractères sont eux aussi des entiers.

    Pour information, ma chaîne de caractères provient d'un Entry, donc un String. Je n'arrive pas à faire les manipulations...

    Si je fais int(HU_Ref.get()[:10]), cela me retourne 265987789 à la place de 0265987789

    Merci par avance pour votre aide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #.....
    HU_Ref = StringVar()
    HURef_entry = Entry(ControlMenu_frame, textvariable=HU_Ref, font=Myfont)
    #.......
    if HU_Ref.get()[:4] != '0265':
        messagebox.showerror("Error", "4 first digit must start by '0265'!")
    elif int(HU_Ref.get()[-2:]) != int:
        messagebox.showerror("Error", "2 last digit non ok!")
    elif str(HU_Ref.get()[10:11]) != str('-'):
        messagebox.showerror("Error", "Separator must be "-" !")
    else:   
        #....

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 841
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par Supernatural Voir le message
    Je souhaite contrôler que les 10 premiers caractères sont des entiers (aucunes lettres ni caractères spéciaux)
    Imaginons déjà que tu aies récupéré HURef.get() dans "s" pour éviter de répéter cet appel à chaque opération. Donc si set(s[0:10]) - set(string.digits) est vide, c'est que c'est bon (faut importer le module "string" évidemment)

    Citation Envoyé par Supernatural Voir le message
    que le 11 égale à '-'
    s[10] == "-" (t'as besoin de venir sur un forum pour ça ?)

    Citation Envoyé par Supernatural Voir le message
    et que les 2 derniers caractères sont eux aussi des entiers.
    Pareil que pour les 11 premiers mais avec un autre slice...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    str.isdigit() est là pour ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    >>> s = "0265987789-00"
    >>> if all([i.isdigit() for i in s.split("-")]):
    ...     print("OK")
    ... 
    OK
    >>>

  4. #4
    Membre éclairé
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    480
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 480
    Par défaut
    Merci à vous :-)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Expression régulière de contrôle d'une chaîne de caractères
    Par ahmedpa dans le forum Général Java
    Réponses: 7
    Dernier message: 19/05/2014, 17h25
  2. Contrôle d'une chaîne de caractère
    Par Pamplonica dans le forum Designer
    Réponses: 3
    Dernier message: 11/07/2011, 18h48
  3. Contrôle sur une chaîne de caractères
    Par jaussiba dans le forum SQL
    Réponses: 4
    Dernier message: 18/02/2011, 09h16
  4. Découpage d'une chaîne de caractères
    Par karinhalabi dans le forum Cobol
    Réponses: 1
    Dernier message: 11/04/2007, 16h22
  5. Découpage d'une chaîne de caractère
    Par turbo_chess dans le forum C
    Réponses: 1
    Dernier message: 01/04/2007, 12h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo