Annonce

Réduire
Aucune annonce.

Algorithm de Lhune > Une Partie de mon code

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • News Algorithm de Lhune > Une Partie de mon code

    Hello, aujourdhui je vous post une partie du code de mon programe pour avoir votre avis sur comment l'améliorer et le rendre portable.
    J'ai encore plusieurs soucis:

    Le problem des chemins dans le system de menu "Archaïque Menu V1" ^^ Peu étre je peu régler le problem avec un "instaleur" genre setup.py ?

    Ou faut il que je change la construction de mon menu :/ ?( Du fait que j'utilise un nouveau numéro a chaque fois.. il faudrais peu etre "un menu par menu" -> voir le code)

    Aussi je voudrais "Trap" ctrl +c ? (Comme metasploit console ) Qui sait comment faire ?


    Donc je vous post de quoi faire fonctionner uniquement le premier l'algorithm (menu.py + cb.py):


    C'est mon PREMIER prog en python donc posez ces fourches !!

    Menu.py(Modifiez le chemin vers CB.py et menu.py pour que ca fonction ):
    #!/usr/bin/python
    # -*-coding:utf-8 -*
    ## /!\ Menu - Beta /!\ Algorithme
    ##@UnAmEd~(0_0)~
    import sys, os

    # Main definition - constants
    menu_actions = {}
    num = ""
    # =======================
    # MENUS FUNCTIONS
    # =======================

    # Menu principal
    def main_menu():
    os.system('clear')

    print "\033[33m <=================== ~{0_0}~ ===================> \033[0m\n"
    print "\033[33m AlgoCheck \033[0m\n"
    print "\033[33mChoisissez un algorithme:\033[0m "
    print "1.\033[33mLhune Checker <-(Crédit Card) <-\033[0m"
    print "2.\033[33mNIR Checker (Carte Vital) <-\033[0m"
    print "3.\033[33mInternational Bank Account Number Checker <-\033[0m"
    print "\n0. \33[31mExit\033[0m"
    choice = raw_input(" >> ")
    exec_menu(choice)

    return

    # Execute menu
    def exec_menu(choice):
    os.system('clear')
    ch = choice.lower()
    if ch == '':
    menu_actions['main_menu']()
    else:
    try:
    menu_actions[ch]()
    except KeyError:
    print "\33[31mMauvais choix =(.\033[0m\n"
    menu_actions['main_menu']()
    return

    # Menu 1
    def menu1():
    print "\033[34m <=================== ~{0_0}~ ====By-Unam3d=======> \033[0m\n"
    print "\033[34m Bienvenue dans Lhune Checker {0_0} !\033[0m\n"
    print "4.\033[34m Tester une CB ou un SIRET <-\033[0m"
    print "9.\033[33m Back\033[0m"
    print "\n0. \33[31mExit\033[0m"
    choice = raw_input(" >> ")
    exec_menu(choice)
    return


    # Menu 2
    def menu2():
    print "\033[36m <=================== ~{0_0}~ ===================> \033[0m\n"
    print "\033[36m Bienvenue dans NIR Checker !\033[0m\n"
    print "5.\033[36m Tester carte vital <-\033[0m"
    print "9.\033[33m Back\033[0m"
    print "\n0. \33[31mExit\033[0m"
    choice = raw_input(" >> ")
    exec_menu(choice)
    return

    # Menu iban
    def menu3():
    print "\033[32m <=================== ~{0_0}~ ====================> \033[0m\n"
    print "\033[32m Bienvenue dans IBAN Checker !\033[0m\n"
    print "6.\033[32m Tester un IBAN <-\033[0m"
    print "7.\033[32m Informations <-\033[0m"
    print "9.\033[33m Back\033[0m"
    print "\n0. \33[31mExit\033[0m"
    choice = raw_input(" >> ")
    exec_menu(choice)
    return

    # Menu info
    def infoiban():
    print "\033[32m <=================== ~{0_0}~ ===================> \033[0m\n"
    print "\033[32m List des IBAN suporte:\033[0m\n"
    print "\033[32m France(27) Format IBAN : FRkk XXXX XXXX XXX XXXX XXXX XXX\033[0m"
    print "\033[32m Grece (27) Format IBAN : GRkk XXXX XXXX XXX XXXX XXXX XXX\033[0m"
    print "\033[32m Italie (27) Format IBAN : ITkk XXXX XXXX XXX XXXX XXXX XXX\033[0m"
    print "\033[32m Monaco (27) Format IBAN : MCkk XXXX XXXX XXX XXXX XXXX XXX\033[0m"
    print "\033[32m Saint-Marin (27) Format IBAN : SMkk XXXX XXX XXXX XXXX XXX\033[0m"
    print "8.\033[33m Back\033[0m"
    print "\n0.\33[31mExit\033[0m"
    choice = raw_input(" >> ")
    exec_menu(choice)
    return

    # Back to main menu
    def back():
    menu_actions['main_menu']()

    # Exit program
    def exit():
    print "\033[33m [+] Merci d'avoir utiliser AlgoCheck ! \033[0m\n"
    os.system("sleep 5")
    sys.exit()

    def cartebleu():
    print "\033[33m [+] Américan Express Non pris en charge ! \033[0m\n"
    os.system("/home/stiky/Bureau/Python/checker/CB.py")

    def cartevital():
    os.system("/home/stiky/Bureau/Python/checker/Vital.py")

    def iban():
    os.system("/home/stiky/Bureau/Python/checker/IBAN.py")


    # =======================
    # MENUS DEFINITIONS
    # =======================

    # Menu definition
    menu_actions = {
    'main_menu': main_menu,
    '1': menu1,
    '2': menu2,
    '3': menu3,
    '8': menu3,
    '9': back,
    '0': exit,
    '4': cartebleu,
    '5': cartevital,
    '6': iban,
    '7': infoiban
    }

    # =======================
    # MAIN PROGRAM
    # =======================

    # Main Program
    if __name__ == "__main__":
    # Launch main menu
    main_menu()


    CB.py

    Code:
    #!/usr/bin/python
    # -*-coding:utf-8 -*
    ## /!\ Algorithme de Luhn (mod10) pour CB ou SIRET /!\ Algorithme
    ##@Unamed ~(0_0)~    
    import sys, os
    import string
    
    class CarteBleu():
    
        def validation(self):
            if len(num) < 16 or len(num) > 16:
                return False
            else:
                return True
    
        def __init__(self, num):
            self.num = num
    
    print "\033[33m<----------------- ~{0_0}~ -By--Unam3d-----> \033[0m"          
    print "\033[33m<==============Lhune Checker==============>\033[0m"  
    print "/!\ Algorithme de Luhn (mod10) pour CB ou SIRET /!\ Algorithme "
    num = raw_input("Entrez le numéro de carte a vérifier (NoSpace): ")
    
    while len(num) != 16:
        print "\033[33m/!\Luhn pour CB ou SIRET (16 chiffres ! ) /!\ Algorithme \033[0m"
        num = raw_input("Entrez le numéro de carte a vérifier (NoSpace): ")                
    
    num = str(num)
    num = str(num)
    carte = CarteBleu(num)        
    if carte.validation() == True:
       print "\033[34mInfo Num:\033[0m"
    else:
       print "\033[33mNumero de invalide !! \033[0m"
    
    num1 = num[0]
    num2 = num[1]
    num3 = num[2]
    num4 = num[3]
    num5 = num[4]
    num6 = num[5]
    num7 = num[6]
    num8 = num[7]
    num9 = num[8]
    num10 = num[9]
    num11 = num[10]
    num12 = num[11]
    num13 = num[12]
    num14 = num[13]
    num15 = num[14]
    KEY = num[15]    
    a = int(num1) *2                                         #Début de la P1
    if a >= 10:
        a = a - 9
    b = int(num2)
    c = int(num3) *2
    if c >= 10:
        c = c - 9
    d = int(num4)  
    e = int(num5) *2
    if e >= 10:
        e = e - 9
    f = int(num6)
    g = int(num7) *2
    if g >= 10:
        g = g - 9
    h = int(num8)
    i = int(num9) *2
    if i >= 10:
        i = i - 9
    j = int(num10)
    k = int(num11) *2
    if k >= 10:
        k = k - 9
    l = int(num12)
    m = int(num13) *2
    if m >= 10:
        m = m - 9
    n = int(num14)
    o = int(num15) *2
    if o >= 10:
        o = o - 9
    p = int(KEY)                                                     #Fin de la P1
    
    newnum = str(a) + str(b) + str(c) + str(d) + str(e) + str(f) + str(g) + str(h) + str(i) + str(j) + str(k) + str(l) + str(m) + str(n) + str(o) + str(p)      #P2
    newnum2 = a + b + c + d + e + f + g + h + i + j + k + l + m + n + o + p   #P3
    validation = newnum2 % 10     #P4
    if validation != 0:
        print "\033[31m [!] Numéro INVALIDE \033[0m"
        os.system("sleep 2")
        print "\033[33m [+] Merci d'avoir utiliser AlgoCheck V.1! \033[0m\n"
        os.system("sleep 4")
        os.system("python /home/stiky/Bureau/Python/checker/menu.py")
    else:
        print "\033[32m Enjoy ! Numéro de carte validé par Lhune ! =o)!\033[0m"
        os.system("sleep 2")
        print "\033[33m [+] Merci d'avoir utiliser AlgoCheck V.1! \033[0m\n"
        os.system("sleep 4")
        os.system("python /home/stiky/Bureau/Python/checker/menu.py")
    ##print "\033[32m-DEBUG- P1= %s P2 = %s P3 = %s\033[0m" % (newnum,newnum2,validation)  ##Debug pour result phase par phase
    PS: Je sais que les menus son moche et avec des fautes Je veut juste que ca marche a 100% et aprés je fait un beau menu...
    Dernière modification par Unamed, 10 février 2018, 18h12.
    "Please do not use in military or secret service, or for illegal purposes."

  • #2
    Bonsoir,

    T'as de la chance que je m'y colle, c'est rare que je regarde un code python non indenté. Tu sais que c'est totalement incohérent de présenter un code python sans son indentation...

    Je n'ai pas le temps de tout lire, je commence par le plus simple, le menu !

    Quelques remarques,
    • Python 2.x va disparaître en 2020, faut passer à la version 3.x qui existe depuis bientôt 10 ans, quelques adaptations à faire entre version 2 et 3.
    • Trop de lignes de code pour faire un menu, pourquoi ne pas mettre chaque menu dans un fichier à lire selon le choix de l'utilisateur ?
    • Pour les print, utiliser les triples quotes
    • Ton code n'est pas portable (utilisation de l'horrible os.system)
    • La conception n'est pas bonne, d'où ces nombreuses lignes

    Conseils,
    1. Pense toujours à un code portable (tout l'intérêt du langage python)
    2. Retirer tous les os.system et réfléchir à une autre manière d'exécuter tes programmes python (pourquoi pas en les important avec import)
    3. Repense la conception de ton code, imagine le dessiner, analyse les répétitions, utilise les boucles, etc. Le développeur est fainéant.
    Je regarderai le reste quand tu auras présenté un code renouvellé et bien indenté.

    Commentaire


    • #3
      Salut fred, mon code est indenté mais le copier coller a tout foutu en l'air ,

      Pour tout le reste merci des conseils je vais tout re-écrire au propre avec un fichier par menu et repost ca avec l'indentation correct !
      "Please do not use in military or secret service, or for illegal purposes."

      Commentaire


      • #4
        Envoyé par Unamed Voir le message
        Salut fred, mon code est indenté mais le copier coller a tout foutu en l'air
        Je m'en suis douté, mais tu comprends bien que pour l'analyse d'un code python, un petit effort de ta part pouvait éviter cela

        Commentaire


        • #5
          Salut fred je voudrais modifer mon post pour indenté le code c'est ma fautes j'ai utilisé des balises quotes et pas code ^^ mais j'ai cette erreur :
          "Désolé, vous n'êtes pas autorisé à voir cette page. (no_permission)"

          Quand je veut modifier le post :/ peut tu faire quelques choses ? voila merci d'avance !
          "Please do not use in military or secret service, or for illegal purposes."

          Commentaire


          • #6
            Non je ne peux pas, dès que j'ai un peu de temps je modifierai le premier code menu. Pour les autres codes, tu n'as qu'à juste créer un nouveau topic ?

            Commentaire

            Chargement...
            X