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 liste affichage


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2021
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2021
    Messages : 14
    Par défaut Problème liste affichage
    Bonjour à tous.

    Aujourd'hui j'ai fait un programme permettant de déterminer la nomenclature d'une molécule à partir de sa représentation.

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    print("** Détermination de la famille de composés à l'aide d'une spectroscopie InfraRouge ** \n")
    print("Famille possibles : Acide carboxylique, Cétone ou Aldéhyde, et Alcool")
     
    def présence_du_groupe_CO(molecule) :
        réponse_CO = str(input("Bande entre 1700 et 1760 cm-1 ? \n"))
        return réponse_CO
     
    def présence_du_groupe_acide(molecule) :
        réponse_acide = str(input("Bande large entre 3500 et 3000 cm-1 ? \n"))
        return réponse_acide
     
    def présence_du_groupe_alcool(molecule) :
        réponse_alcool = str(input("Bande assez large vers 3300 cm-1 ? \n"))
        return réponse_alcool
     
    def nomenclature(molecule) :
        if famille=="indéterminée" :
            print("Impossible de déterminer la nomenclature sans connaître la famille de la molécule")
        else :
            nomenclature=[]    
            r=str(input("La molécule a-t-elle des ramifications ? "))
            if r=="oui" :
                nb=int(input("Combien de ramifications la molécule a t-elle ? "))
                for i in range (nb) :
                    if nb >1 :
                        print("Entrez les données des différentes ramifications")
                    p=int(input("Quelle est la position de la ramification ?"))
                    nomenclature.append(p)
                    c=int(input("Combien y a-t-il de carbone dans la ramification ?"))
                    if c==1 :
                        rami="méthyle"
                    elif c==2 :
                        rami="éthyle"
                    elif c==3 :
                        rami="propyle"
                    elif c==4 :
                        rami="butyle"
                    elif c==5 :
                        rami="pentyle"
                    elif c==6 :
                        rami="hexyle"
                    elif c==7 :
                        rami="heptyle"
                    elif c==8 :
                        rami="octyle"
                    nomenclature.append(rami)
     
            else :
                ramification=""
     
            nb_C=int(input("Combien y a-t-il de carbone dans la chaine carbonée ? "))
            if nb_C==1 :
                préfixe="méthan"
            elif nb_C==2 :
                préfixe="éthan"
            elif nb_C==3 :
                préfixe="propan"
            elif nb_C==4 :
                préfixe="butan"
            elif nb_C==5 :
                préfixe="pentan"
            elif nb_C==6 :
                préfixe="hexan"
            elif nb_C==7 :
                préfixe="heptan"
            elif nb_C==8 :
                préfixe="octan"
            nomenclature.append(préfixe)
            if famille=="alcool" or famille=="cétone":
                position=int(input("Quelle est la position du groupe caractéristique ?"))
                nomenclature.append(position)
            if famille=="acide carboxylique":
                nomenclature.insert(0, "acide")
                suffixe="oïque"
            elif famille=="alcool":
                suffixe="ol"
            elif famille=="aldéhyde" :
                suffixe="al"
            elif famille=="cétone" :
                suffixe="one"
            nomenclature.append(suffixe)
     
     
            return nomenclature
     
     
     
     
    molecule=str(input("Entrez la molécule à analyser : "))
     
    if présence_du_groupe_CO(molecule) == "oui":
        if présence_du_groupe_acide(molecule)== "oui" :
            print("\nLa molécule est un acide carboxylique.")
            print ("\nSon groupe caractérisique est le carboxyle")
            famille="acide carboxylique"
        else :
            print("\nSon groupe caractéristique est le carbonyle")
            f=str(input("le groupe caractéristique est-il en fin de chaîne ? "))
            if f=="oui" :
                famille="aldéhyde"
                print("\nLa molécule est un aldéhyde")
            else :
                famille="cétone"
                print("\nLa molécule est une cétone")
    elif présence_du_groupe_alcool(molecule) == "oui" :
        print("\nLa molécule est un alcool.")
        print("\nSon groupe caractéristique est l'hydroxyle")
        famille="alcool"
    else :
        print("\nLa molécule", (molecule), "n'appartient pas à une des familles proposées")
        famille="indéterminée"
     
     
    a=str(input("\nVoulez-vous connaître la nomenclature de la molécule ? "))
    if a=="oui":
        b=str(input("\nAvez-vous la représentation de la molécule ? "))
        if b=="oui" :
            print(nomenclature(molecule))
        else :
            print("Impossible de déterminer la nomenclature de la molécule sans la représentation")
    Après plusieurs questions, le programme affiche ceci :

    Nom : Sans titre-1.jpg
Affichages : 136
Taille : 147,3 Ko

    J'aimerais qu'il affiche nom de la molécule correctement sans les crochets, virgule etc. La molécule écrite correctement et tout attachée.
    Après de nombreux essais, je n'y arrive pas...

    Merci d'avance pour votre aide,
    Cordialement
    Ludovic V.

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 705
    Par défaut
    Salut,

    Citation Envoyé par LudovicV Voir le message
    J'aimerais qu'il affiche nom de la molécule correctement sans les crochets, virgule etc. La molécule écrite correctement et tout attachée.
    Après de nombreux essais, je n'y arrive pas...
    La question se ramène a l'affichage d'une liste:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> L = [1, 'a', 2, 'b']
    >>> print(L)
    [1, 'a', 2, 'b']
    Une façon "rapide" pourrait être:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> print(*L)
    1 a 2 b
    et si vous voulez un autre format, il va falloir apprendre à utiliser .join, .format,... pour faire la chaine de caractères que vous voulez à partir de la liste.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2021
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2021
    Messages : 14
    Par défaut
    Merci, c'est déjà beaucoup mieux ! Pour les espaces vous avez une solution ? Normalement le nom de la molécule est attaché..

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 705
    Par défaut
    Citation Envoyé par LudovicV Voir le message
    Merci, c'est déjà beaucoup mieux ! Pour les espaces vous avez une solution ? Normalement le nom de la molécule est attaché..
    La solution? C'est à vous d'apprendre à l'écrire... en regardant ce qu'on peut faire avec print, join,....

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2021
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2021
    Messages : 14
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    La solution? C'est à vous d'apprendre à l'écrire... en regardant ce qu'on peut faire avec print, join,....

    - W
    J'ai réussi, merci bcp pour votre aide.
    Bonne journée!

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 822
    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 822
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par LudovicV Voir le message
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    if c==1 :
                        rami="méthyle"
                    elif c==2 :
                        rami="éthyle"
                    elif c==3 :
                        rami="propyle"
                    elif c==4 :
                        rami="butyle"
                    elif c==5 :
                        rami="pentyle"
                    elif c==6 :
                        rami="hexyle"
                    elif c==7 :
                        rami="heptyle"
                    elif c==8 :
                        rami="octyle"
                    nomenclature.append(rami)
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    nomenclature.append(
    	{
    		1 : "méthyle",
    		2 : "éthyle",
    		3 : "propyle",
    		4 : "butyle",
    		5 : "penthyle",
    		6 : "hexyle",
    		7 : "heptyle",
    		8 : "octyle",
    	}[c]
    )
    En attendant de pouvoir carrément créer le nom complet (propyle/propane/propanol) en fonction de ses caractéristiques.
    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]

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

Discussions similaires

  1. problème liste affichage des deux plus grands nombres
    Par LeGenTleManfr dans le forum Général Python
    Réponses: 8
    Dernier message: 05/11/2012, 20h13
  2. problème d'affichage de liste combo hors fenêtre
    Par federb.do dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 14/06/2006, 19h40
  3. Problème d'affichage dynamique d'une liste
    Par bor1s dans le forum ASP
    Réponses: 2
    Dernier message: 18/11/2005, 16h18
  4. [MFC]List Control : problème d'affichage
    Par gege2061 dans le forum MFC
    Réponses: 5
    Dernier message: 25/07/2005, 13h40
  5. Problème liste d'affichage
    Par nicolas66 dans le forum OpenGL
    Réponses: 6
    Dernier message: 06/12/2004, 10h10

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