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 :

premier prog en python


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 23
    Par défaut premier prog en python
    bonjour,

    je vous écrit un petit post car je viens de commencer mon premier programme en python, en effet ce programme est pour le moment en ligne de commande, mais bon en progressant dans ce language, j'aimerai lui mettre une interface graphique par la suite.

    Ce programme est sensé en lui rentrant 2 adresse ouvrir une page internet avec l'itinéraire pour allé de l'un à l'autre et propose d'enregistrer deux adresse favorite pour le moment pas encore développé.

    Voici mes problèmes j'ai des erreurs au lancement du script mais j'arrive pas a les corriger avec mes variables globales, et j'ai une erreur avec urllib.urlopen().
    Pour le reste il semblerai que ça tourne à peu près ( bon j'ai pas tester encore avec les adresses favorites car faut je trouve comment le script pourrai s'auto-éditer quand il tourne mais ca c'est pour la suite)

    plutot que de blablater voici mon code et j'ai mit en piece jointe le .py merci de votre aide ps je suis sous winxp:

    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
    # -*- coding:Latin-1 -*-          #pour pouvoir avoir les accent dans mes print
    import urllib
    adr1=""                           #pour la suite du programme modifiera "" par une des adresse si on veut en enregistrer une
    adr2=""                           #idem pour la 2ème      
    global saddr                       #definition de la variable global
    global daddr                       #idem
    def reg_adr():                      #création de ma méthode qui demande et ou enregistre l'adresse
      print ("vous pouvez enregistrer cette adresse pour ne plus avoir à la saisir ulterieurement")
      print ("cependant vous ne pouvez enregistrer que deux adresse")
      print ("désirez vous l'enregistrer? Oui/Non tappez O/N")
      rep2=input()
      if(rep2=="O") or (rep2=="o"):
        print ("ce module viendra plus tard")
      elif(rep2!="o") & (rep2!="O") & (rep2!="N") & (rep2!="n"):
        print ("veuillez entrer seulement O ou N!")
        reg_adr()
      else:
        print("") 
     
    def saisi_saddr():                  # méthode saisie de l'adresse de départ      
      print ("bienvenu veuillez entrer votre adresse de départ")
      if(adr1!=""):
       print ("ou 1 si vous partez du ",adr1)      #s'affiche seulement si adr1 a une adresse en mémoire
      elif(adr2!=""): 
       print ("ou 2 si vous partez du ",adr2)         #idem
      global rep
      rep=input()               #met la réponse dans rep
      if(rep==1):
        global saddr
        saddr=adr1
      elif(rep==2):
       global saddr
       saddr=adr2
      else:
        global saddr
        saddr=rep
        reg_adr()
     
     
    def saisi_daddr():          #méthode saisie adresse arrivée
      print("veuillez maintenant entrer votre adresse de d'arrivé")
      if(adr1!=""):
        print ("ou 1 si vous allez au ",adr1)
      elif(adr2!=""): 
        print ("ou 2 si vous allez au ",adr2)
      global rep3
      rep3=input()
      if(rep3==1):
        global daddr
        daddr=adr1
      elif(rep3==2):
        global daddr
        daddr=adr2
      else:
        global daddr
        daddr=rep3
        reg_adr()
     
     
    saisi_saddr()    #appel la méthde d'adresse départ  
    saisi_daddr()     #appel méthode adresse arivée
    print ("calcul en cour...")                      # pour faire genre!! :-D
    print ("... ...","... ...","... ...","... ...")
    print(saddr)           #juste pour verifier l'enleverai après
    print(daddr)           #idem  
    url1="""http://maps.google.fr/maps?f=d&hl=fr&saddr="""  
    url2="""&daddr="""
    url=url1+saddr+url2+daddr      #concaténation de la chaine url
    url=url.encode("utf-8")        #transcodage en utf-8 car il me semble les adresse internet sont en utf8
    print(url)                      # affichage pour verifier l'adresse au cas ou possiilité de la copier :-D
    urllib.urlopen(url)             #ouvre cette url
    Fichiers attachés Fichiers attachés

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 23
    Par défaut
    bonjour, il n'y à personne qui pourrai me répondre svp, ou personne qui pourrai me dire ou je pourrai poster ma question afin d'avoir un peu plus d'aide, je vous avourai que je n'ai toujours pas trouvé la réponse tous seul, malgrès avoir rechercher sur internet si quelqu'un pouvais venir en aide à un débutant comme moi, ca me ferai bien plaisir!!!

    Merci d'avance.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 23
    Par défaut
    en fait je me demande si mon problème ne viendrai pas aussi de la version que j'utilise de python, en effet, comme c'était mon premier programme, j'ai la version 3.0 a1 et dedans en mode interpréteur je ne peut même pas faire un import webbrowser et un webbrowser.open("monadresse internet") qu'en pensez vous?

  4. #4
    Expert confirmé
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Par défaut
    Tout d'abord, c'est une très mauvaise idée de partir dur la version 3.0 de Python. Elle n'est là pour l'instant qu'à titre expérimental.
    Télécharge plutôt la version 2.5.1 qui marche bien.

    Ensuite, au niveau des indentations, en général, on utilise toujours le même nombre d'espace (4), c'est bien plus lisible.

    pour les global, ca s'utilise au début des fonctions, pas besoin au début du programme
    =>
    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
    def saisi_saddr():                  # méthode saisie de l'adresse de départ
        global saddr, rep
        print ("bienvenu veuillez entrer votre adresse de départ")
        if(adr1!=""):
            print ("ou 1 si vous partez du ",adr1)      #s'affiche seulement si adr1 a une adresse en mémoire
        elif(adr2!=""): 
            print ("ou 2 si vous partez du ",adr2)         #idem
        rep = raw_input()               #met la réponse dans rep
        if(rep==1):
            saddr=adr1
        elif(rep==2):
            saddr=adr2
        else:
            saddr=rep
            reg_adr()
    dans ton cas, c'est plutôt raw_input qu'il faut utiliser plutôt que input, ca évitera que tu as besoin de taper les guillemets

    Ensuite, il faut toujours dans ton post indiquer où est l'erreur (avec le message que te donnes l'interpréteur) parce qu'en je lance le programme, je ne la vois pas tout de suite.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 23
    Par défaut
    ok merci beaucoup,

    je viens de faire un grand bond en avant, j'ai installer la 2.5.1 utilisé webbrowser et en effet le programme fonctionne, avec erreur pour les global que j'ai corrigé merci pour l'info j'avais pas compris que c'était au début des fonctions, je pensais que c'était comme une déclaration générale.

    Pour le raw_input j'avais remarqué, qu'il fallais des " " mais j'avais pas trouvé la solution encore merci beaucoup vraiment!!

    Il me reste plus qu'à implémenter la fonction qui enregistre les adresses dans un fichier un peut comme une base de donnée, et l'interface graphique.

    encore merci!!

Discussions similaires

  1. Premier programme sous Python
    Par Helios07 dans le forum Général Python
    Réponses: 6
    Dernier message: 06/06/2008, 10h33
  2. Premiers pas dans python
    Par thance dans le forum Général Python
    Réponses: 20
    Dernier message: 13/03/2007, 16h54
  3. premiers pas dans Python - palindrome
    Par tarang dans le forum Général Python
    Réponses: 1
    Dernier message: 31/10/2006, 16h56
  4. Premier prog (prob Dev-C++)
    Par thedivxboy dans le forum OpenGL
    Réponses: 3
    Dernier message: 13/04/2005, 13h44
  5. [debutant]Mon premier prog OpenGL
    Par Revan777 dans le forum OpenGL
    Réponses: 5
    Dernier message: 04/04/2005, 17h40

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