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 :

problème avec condition " if " et "liste" pour programme


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2011
    Messages : 5
    Par défaut problème avec condition " if " et "liste" pour programme
    bonjour à tous (et à toutes !!)
    étant une quiche en programmation (en l'occurrence au language python) je m'en retourne vers vous pour une ou deux questions.
    Voici mon problème, je dois réaliser un programme sur la nomenclature en chimie, ce programme d'après mon prof qui en a réalisé un, n'est pas bien compliqué (35 lignes).
    Le programme devrait ressembler à ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    si debut_molecule = 'H'
    nom = 'acide'
    si fin_molecule = 'Cl'
    nom = nom + 'chloridrique'
    si fin_molecule = 'OH'
    nom = 'hydroxide de'
    si debut_molecule = 'Mg'
    nom = nom + 'magnesium'
    si fin_molecule = 'O'
    nom = 'oxyde de'
    si debut_molecule = 'Fe'
    nom = nom + 'fer'
    (etc..)
    mon problème est le suivant: comment "ordonner" au programme qu'il reconnaisse "si début_molécule" et "si fin_molécule" ?? je pensais à qqchose du genre==> vecteur[0] = "S ; sulfure"
    vecteur[0] = [["S"] ["sulfure"]]
    vecteur [0][0] vecteur[0][1]
    j'ai donc du mal à implanter ça dans l'algo, est ce que je vais devoir ça pour chaque anion et cation??
    Mon prof m'a dit de faire 2 listes via excel avec les cations et anion ( http://jeanlouisfritsch.free.fr/docume [...] iste_ions.pdf ) et d'enregistrer en ".csv" sauf que je ne comprends pas trop l'utilité de faire ces 2 listes ..

    Voila, j'espère que qqn aura un peu de temps pour me répondre,
    Merci d'avance.

  2. #2
    Membre éclairé Avatar de Bayard
    Inscrit en
    Juin 2002
    Messages
    863
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 863
    Par défaut
    Les dictionnaires sont vos amis:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    debut = {" H": "Acide", "OH": "hydroxide de"}
    fin ={"CI": "Choridrique", "MG": "magnesium"}
    print(debut[" H"]+" " +fin["CI"])
    Acide Choridrique
    Petite remarque 1: j'ai des parenthèses pour le print car, je suis en python 3.2.
    Petite remarque 2: votre lien n'est pas cliquable.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2011
    Messages : 5
    Par défaut
    Citation Envoyé par Bayard Voir le message
    Les dictionnaires sont vos amis:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    debut = {" H": "Acide", "OH": "hydroxide de"}
    fin ={"CI": "Choridrique", "MG": "magnesium"}
    print(debut[" H"]+" " +fin["CI"])
    Acide Choridrique
    Petite remarque 1: j'ai des parenthèses pour le print car, je suis en python 3.2.
    Petite remarque 2: votre lien n'est pas cliquable.
    Bonsoir,
    tout d'abord merci de votre réponse.
    Quand vous parlez de dico, se sont les tutos ??
    Concernant mon lien, j'ai en fait crée 2 listes (une cation, l'autre anion) qui ressemble à ça,
    OH Hydroxide
    F Fluorure
    Cl Chlorure
    Br Bromure
    I Iodure
    O Oxyde
    S Sulfure
    NO3 Nitrate
    SO4 Sulfate
    CO3 Carbonate
    HCO3 Hydrogénocarbonate
    PO4 Phosphate
    CH3COO Acétate
    le tout en .csv cependant je ne vois pas l'intérêt, car je devrai je pense tout mettre manuellement dans l'algo ??
    Concernant ma partie sur les vecteurs, elle n'est pas bonne ??

    encore merci pour votre réponse, cela me donne un bon aperçu.Je pense pour l'instant être dans le bon .

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 941
    Par défaut
    Dans un premier temps, laisse tomber les dénominations "acide ..." qui vont te compliquer la vie, car l'ordre d'interprétation est inversé et les termes sont différents. Contente-toi de "Chlorure d'hydrogène" pour HCl plutôt que "Acide chloridrique"; c'est juste de toute façon.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2011
    Messages : 5
    Par défaut
    Citation Envoyé par dividee Voir le message
    Dans un premier temps, laisse tomber les dénominations "acide ..." qui vont te compliquer la vie, car l'ordre d'interprétation est inversé et les termes sont différents. Contente-toi de "Chlorure d'hydrogène" pour HCl plutôt que "Acide chloridrique"; c'est juste de toute façon.
    oui c'est ce que je fais, de toute façon il n'y aura que de la nomenclature "simple".
    Par contre je ne vois pas l'intérêt de faire 2 listes (anion-cation) , car j'encode tout "manuellement" dans l'algo ??
    ps:merci pour votre réponse

  6. #6
    Membre Expert
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 941
    Par défaut
    Je ne sais pas ce qui tu entends par "manuellement", mais l'idée c'est de faire un algo qui utilise ces listes.

    En python tu as les méthodes startswith et endswith pour tester si une chaîne débute ou se termine par une autre chaîne.

    Enregistrer les noms des ions dans un dictionnaire est valable, mais n'apporte pas grand chose car il faudra de toute façon itérer sur les valeurs; autant utiliser une liste de couples:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    cations = [("H","d'hydrogène"), ("Na","de sodium")]
    anions = [("Cl","chlorure"), ("Br","bromure")]
     
    molecule = "NaCl"  # test
     
    for anion, debut in anions:
        if molecule.endswith(anion):
            break
     
    # debut == "chlorure"
     
    ...
    Les listes anions et cations peuvent être reconstruites à partir du fichier CSV, au besoin...

Discussions similaires

  1. [AC-2007] problème avec condition If et And
    Par Rémi GAUDINAT dans le forum VBA Access
    Réponses: 3
    Dernier message: 21/06/2010, 19h05
  2. Problème avec condition IF
    Par bambino13 dans le forum ASP
    Réponses: 7
    Dernier message: 04/05/2009, 23h50
  3. Parcourir ligne - Problème avec conditions
    Par JP1983 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 17/02/2008, 22h29
  4. [MySQL] Problème avec condition if + is_int
    Par JackBeauregard dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 25/08/2006, 14h12
  5. Réponses: 6
    Dernier message: 15/06/2006, 15h15

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