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 de nom non défini


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Amateur
    Inscrit en
    Octobre 2019
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Octobre 2019
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Problème de nom non défini
    Bonjour, je travaille sur un projet depuis maintenant 4 heures pour découvrir qu'il ne marche pas! voici le code, essayez le:

    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
    from tkinter import messagebox, simpledialog, Tk
    from random import choice
     
    def get_task():
        task = simpledialog.askstring('Task', 'Tu veux encoder, décoder ou arreter?')
        return task
     
    def get_message():
        message = simpledialog.askstring('Message', 'Tape le message:')
        return message
    again = True
    root = Tk()
    root.withdraw
    while(again==True):
        task = get_task()
        if task == 'encoder':
            message = get_message()
            new_message2 = encryption(message)
            messagebox.showinfo('Le message encodé est:', new_message2)
            print(new_message2)
        elif task == 'décoder':
            message = get_message()
            decrypted_message = ultra_decrypt(message)
            messagebox.showinfo('Le message décodé est:', decrypted_message)
            print(ultradecrypted)
        else:
            break
    root.mainloop()
     
    def is_even(number):
        return number % 2 == 0
     
    def get_even_letters(message):
        even_letters = []
        for counter in range(0,len(message)):
            if is_even(counter):
                even_letters.append(message[counter])
        return even_letters
     
    def get_odd_letters(message):
        odd_letters = []
        for counter in range(0, len(message)):
            if not is_even(counter):
                odd_letters.append(message[counter])
        return odd_letters
     
    def swap_letters(message):
        letter_list = []
        if not is_even(len(message)):
            message = message + 'x'
        even_letters = get_even_letters(message)
        odd_letters = get_odd_letters(message)
        for counter in range(0, int(len(message)/2)):
            letter_list.append(odd_letters[counter])
            letter_list.append(even_letters[counter])
        new_message = ''.join(letter_list)
        return new_message
     
    def encrypt(message):
        swapped_letters = swap_letters(message)
        encrypted_message = ''.join(reversed(swapped_message))
        return encrypted_message
     
    def decrypt(message):
        unreversed_message = ''.join(reversed(new_message2))
        decrypted_message = swap_letters(unreversed_message)
        return decrypted_message
     
    def realencrypt(message):
        encrypted_list = []
        fake_letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'i', 'r', 's', 't', 'u', 'v']
        for counter in range(0, len(message)):
            encrypted_list.append(encrypted_message[counter])
            encrypted_list.append(choice(fake_letters))
        new_message2 = ''.join(encrypted_list)
        return new_message2
     
    def realdecrypt(message):
        even_letters = get_even_letters(message)
        new_message2 = ''.join(even_letters)
        return new_message2
     
    def encryption(message):
        encrypted_message = encrypt(message)
        new_message2 = realencrypt(encrypted_message)
        return new_message2
     
    def ultra_decrypt(message):
        new_message2 = realdecrypt(message)
        decrypted_message = decrypt(new_message2)
        return decrypted_message
    Voici le message d'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Traceback (most recent call last):
      File "C:/Users/----/Documents/python/vrais projets/secret_message.py", line 18, in <module>
        new_message2 = encryption(message)
    NameError: name 'encryption' is not defined
    >>> 
    Traceback (most recent call last):
      File "C:/Users/NICO/Documents/python/vrais projets/secret_message.py", line 18, in <module>
        new_message2 = encryption(message)
    NameError: name 'encryption' is not defined
    >>>
    (les tirets ce sont moi qui les ai rajoutés après)

  2. #2
    Membre du Club
    Homme Profil pro
    .
    Inscrit en
    Octobre 2019
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Octobre 2019
    Messages : 21
    Points : 44
    Points
    44
    Par défaut
    Le fichier source est lu ligne par ligne donc il faut mettre chaque fonction appellée devant l'appel.

  3. #3
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    Bonjour, tout d'abord, il y a les balises de code (#) pour poster les programmes ici.
    Par ailleurs, il y a des variables non définies (messages d'alerte sur un bon éditeur), des variables définies globalement et localement en return : bref, de quoi bien tout mélanger.
    Perso, j'ai regardé un peu mais il y a trop d'erreurs à corriger.
    Pas d'aide par mp.

Discussions similaires

  1. [AC-2003] Probléme bloc with non défini
    Par maclolo2 dans le forum IHM
    Réponses: 1
    Dernier message: 07/04/2012, 11h43
  2. Réponses: 10
    Dernier message: 10/02/2010, 08h49
  3. Problèmes d'index non défini
    Par pat06 dans le forum Langage
    Réponses: 6
    Dernier message: 03/11/2007, 18h52
  4. [SQL] Problème de variable non définies
    Par micka39 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 01/05/2007, 23h10
  5. Problème de variable non définie
    Par Mimi Bulles dans le forum Langage
    Réponses: 2
    Dernier message: 07/05/2006, 09h03

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